08-26-2008
I think we're failing to communicate due to my poor English.
Quote:
Originally Posted by
shamrock
On the contrary if performance really matters one would go with a dynamic solution in order to minimize the overhead of allocating a very large memory segment and using only a small portion of it. A static solution is not optimized in terms of memory management.
This is a question of circumstance, memory access speed is generally the same for both static and dynamic memory but if you're creating a program where (malloc()ing) and free()ing entries happens too often a static implementation (with proper algorithms to avoid overflows) should be prefered.
Quote:
Why would you need to expand a static array. Don't you think that's an oxymoron? If you need to expand an array it becomes dynamic by default. The only case where that solution won't work is the gray scenario you suggested where the number of allocated entries is more than the used ones; as in the case below where the array has 10 entries allocated and only 5 are used.
![Confused Smilie](https://www.unix.com/images/smilies/confused.gif)
I was not referring about expanding the array itself! I was talking about expanding the number of entries inside the array (so called "
gray scenario"). The
gray situation has some indications. For instance, if the proper algorithm (avoid bound overflows) is used and we're going to add and remove many entries at a time (for example, buffer purposes).
Quote:
You won't need double level of indirection...the memory returned by malloc() will be assigned to a pointer to an object of type struct empRec that is a single level of indirection. My earlier
post showed that scenario.
Yes I never said it was imperative I just said that you where proposing a one-level solution when the user was having a two-leveled problem. I just said that pointer you refer would have to be linked inside a list (linked lists) to fulfill the user's problem or be inside a
double level pointer.
IMHO the best solution is not generally applied to every case hence there is no point saying "dynamic is the best way" or "static is the best way". The best solution is that which fits the requirements and has best performance.
6 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
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)
Discussion started by: akashag22
3 Replies
2. Shell Programming and Scripting
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)
Discussion started by: sreenusola
1 Replies
3. UNIX for Advanced & Expert Users
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)
Discussion started by: sreenusola
1 Replies
4. UNIX for Dummies Questions & Answers
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)
Discussion started by: sreenusola
13 Replies
5. Homework & Coursework Questions
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)
Discussion started by: yairpg
1 Replies
6. UNIX Desktop Questions & Answers
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 REDHAT
strsyl
STRSYL(l) ) STRSYL(l)
NAME
STRSYL - solve the real Sylvester matrix equation
SYNOPSIS
SUBROUTINE STRSYL( TRANA, TRANB, ISGN, M, N, A, LDA, B, LDB, C, LDC, SCALE, INFO )
CHARACTER TRANA, TRANB
INTEGER INFO, ISGN, LDA, LDB, LDC, M, N
REAL SCALE
REAL A( LDA, * ), B( LDB, * ), C( LDC, * )
PURPOSE
STRSYL solves the real 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**T, and A and B are both upper quasi- 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.
A and B must be in Schur canonical form (as returned by SHSEQR), that is, block upper triangular with 1-by-1 and 2-by-2 diagonal blocks;
each 2-by-2 diagonal block has its diagonal elements equal and its off-diagonal elements of opposite sign.
ARGUMENTS
TRANA (input) CHARACTER*1
Specifies the option op(A):
= 'N': op(A) = A (No transpose)
= 'T': op(A) = A**T (Transpose)
= 'C': op(A) = A**H (Conjugate transpose = Transpose)
TRANB (input) CHARACTER*1
Specifies the option op(B):
= 'N': op(B) = B (No transpose)
= 'T': op(B) = B**T (Transpose)
= 'C': op(B) = B**H (Conjugate transpose = Transpose)
ISGN (input) 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 (input) INTEGER
The order of the matrix A, and the number of rows in the matrices X and C. M >= 0.
N (input) INTEGER
The order of the matrix B, and the number of columns in the matrices X and C. N >= 0.
A (input) REAL array, dimension (LDA,M)
The upper quasi-triangular matrix A, in Schur canonical form.
LDA (input) INTEGER
The leading dimension of the array A. LDA >= max(1,M).
B (input) REAL array, dimension (LDB,N)
The upper quasi-triangular matrix B, in Schur canonical form.
LDB (input) INTEGER
The leading dimension of the array B. LDB >= max(1,N).
C (input/output) REAL 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 (input) INTEGER
The leading dimension of the array C. LDC >= max(1,M)
SCALE (output) REAL
The scale factor, scale, set <= 1 to avoid overflow in X.
INFO (output) 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).
LAPACK version 3.0 15 June 2000 STRSYL(l)