Imho that solution should be used for both static and dynamic cases. It's not advisable to create a 1000 element array on the stack and end up using only a small portion of it. Knowledge of sizeof operator is even more important if the code was accepting user input from the keyboard because in that scenario calls to malloc() printf() and fgets() have to be interleaved together in order to fill up a single empRec structure though its size should be known beforehand.
I agree with static cases when the total number of structs inside employee is known and sizeof() returns the whole size of the array so if we want to know the number of entries we just have to divide sizeof(employee) for sizeof(struct empRec). But in dynamic cases when the user wishes to add more entries in employee array struct, if the array (employee) is bigger (1000 structs) than the number of entries (struct empRec) it has, sizeof() will not help to determine the number of entries because it will give us the size of those 1000 structs and we just want to know those we're using. Also if pointers/malloc() are used, sizeof() won't be of any help I guess.
In this case, if we would want to add a few more entries dynamically we could not determine the number of existing entries (5) using sizeof(), because sizeof(employee) is the same as saying sizeof(struct empRec)*10.
This is why I was advising the original poster to use a NULL/empty struct reference as the final entry so the number of entries could be calculated by counting structs until an empty one was found.
I also agree that having 1000 entries is far too much, but I was not arguing about that. Anyway, how do you use sizeof() in dynamic cases?
I have to write an script for..
CUST: 123 trans:
some contents
CUST: 1234 trans:
some contents
Now wat i have to do is this:
CUST:123 akash trans:
some contents
CUST:1234 akash1 trans:
I have been able to add... (3 Replies)
I have to find the files older than 200 days from a path and copy them to some other directory with the current date stamp attached to it.
i have written like follows:
#!/bin/ksh
DSTAMP=$(date +"%y%m%d%H%M")
rm $CA_OUT_PATH/ftp_logs/temp
touch $CA_OUT_PATH/ftp_logs/temp
chmod 777... (1 Reply)
I have to find the files older than 200 days from a path and copy them to some other directory with the current date stamp attached to it.
i have written like follows:
#!/bin/ksh
DSTAMP=$(date +"%y%m%d%H%M")
rm $CA_OUT_PATH/ftp_logs/temp
touch $CA_OUT_PATH/ftp_logs/temp
chmod 777... (1 Reply)
I have to find the files older than 200 days from a path and copy them to some other directory with the current date stamp attached to it.
i have written like follows:
#!/bin/ksh
DSTAMP=$(date +"%y%m%d%H%M")
rm $CA_OUT_PATH/ftp_logs/temp
touch $CA_OUT_PATH/ftp_logs/temp
chmod 777... (13 Replies)
i thought about to use the commands : wc and sort and mybe more ..
i need to write a bash script that recive a list of varuables
kaka pele ronaldo beckham zidane messi rivaldo gerrard platini
i need the program to print the longest word of the list.
word in the output appears on a separate... (1 Reply)
i thought about to use the commands : wc and sort cut and mybe more ..
i need to write a bash script that recive a list of varuables
kaka pele ronaldo beckham zidane messi rivaldo gerrard platini
i need the program to print the longest word of the list.
word in the output appears on a... (0 Replies)
Discussion started by: yairpg
0 Replies
LEARN ABOUT DEBIAN
ctrsyl
ctrsyl.f(3) LAPACK ctrsyl.f(3)NAME
ctrsyl.f -
SYNOPSIS
Functions/Subroutines
subroutine ctrsyl (TRANA, TRANB, ISGN, M, N, A, LDA, B, LDB, C, LDC, SCALE, INFO)
CTRSYL
Function/Subroutine Documentation
subroutine ctrsyl (characterTRANA, characterTRANB, integerISGN, integerM, integerN, complex, dimension( lda, * )A, integerLDA, complex,
dimension( ldb, * )B, integerLDB, complex, dimension( ldc, * )C, integerLDC, realSCALE, integerINFO)
CTRSYL
Purpose:
CTRSYL solves the complex Sylvester matrix equation:
op(A)*X + X*op(B) = scale*C or
op(A)*X - X*op(B) = scale*C,
where op(A) = A or A**H, and A and B are both upper triangular. A is
M-by-M and B is N-by-N; the right hand side C and the solution X are
M-by-N; and scale is an output scale factor, set <= 1 to avoid
overflow in X.
Parameters:
TRANA
TRANA is CHARACTER*1
Specifies the option op(A):
= 'N': op(A) = A (No transpose)
= 'C': op(A) = A**H (Conjugate transpose)
TRANB
TRANB is CHARACTER*1
Specifies the option op(B):
= 'N': op(B) = B (No transpose)
= 'C': op(B) = B**H (Conjugate transpose)
ISGN
ISGN is INTEGER
Specifies the sign in the equation:
= +1: solve op(A)*X + X*op(B) = scale*C
= -1: solve op(A)*X - X*op(B) = scale*C
M
M is INTEGER
The order of the matrix A, and the number of rows in the
matrices X and C. M >= 0.
N
N is INTEGER
The order of the matrix B, and the number of columns in the
matrices X and C. N >= 0.
A
A is COMPLEX array, dimension (LDA,M)
The upper triangular matrix A.
LDA
LDA is INTEGER
The leading dimension of the array A. LDA >= max(1,M).
B
B is COMPLEX array, dimension (LDB,N)
The upper triangular matrix B.
LDB
LDB is INTEGER
The leading dimension of the array B. LDB >= max(1,N).
C
C is COMPLEX array, dimension (LDC,N)
On entry, the M-by-N right hand side matrix C.
On exit, C is overwritten by the solution matrix X.
LDC
LDC is INTEGER
The leading dimension of the array C. LDC >= max(1,M)
SCALE
SCALE is REAL
The scale factor, scale, set <= 1 to avoid overflow in X.
INFO
INFO is INTEGER
= 0: successful exit
< 0: if INFO = -i, the i-th argument had an illegal value
= 1: A and B have common or very close eigenvalues; perturbed
values were used to solve the equation (but the matrices
A and B are unchanged).
Author:
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Date:
November 2011
Definition at line 157 of file ctrsyl.f.
Author
Generated automatically by Doxygen for LAPACK from the source code.
Version 3.4.1 Sun May 26 2013 ctrsyl.f(3)