void eigens( A, RR, E, N ) double A[], RR[], E[]; int N;
{ int IND, L, LL, LM, M, MM, MQ, I, J, K, IA, LQ; int IQ, IM, IL, NLI, NMI; double ANORM, ANORMX, AIA, THR, ALM, QI, ALL, AMM, X, Y; double SINX, SINX2, COSX, COSX2, SINCS, AIL, AIM; double RLI, RMI, Q, V; double sqrt(), fabs(); staticdouble RANGE = 1.0e-10; /*3.0517578e-5;*/
/* ROTATE L AND M COLUMNS */ for( I=0; I<N; I++ )
{
IQ=(I*I+I)/2; if( (I != M) && (I != L) )
{ if(I > M)
IM=M+IQ; else
IM=I+MQ; if(I >= L)
IL=L+IQ; else
IL=I+LQ;
AIL=A[IL];
AIM=A[IM];
X=AIL*COSX-AIM*SINX;
A[IM]=AIL*SINX+AIM*COSX;
A[IL]=X;
}
NLI = N*L + I;
NMI = N*M + I;
RLI = RR[ NLI ];
RMI = RR[ NMI ];
RR[NLI]=RLI*COSX-RMI*SINX;
RR[NMI]=RLI*SINX+RMI*COSX;
}
X=2.0*ALM*SINCS;
A[LL]=ALL*COSX2+AMM*SINX2-X;
A[MM]=ALL*SINX2+AMM*COSX2+X;
A[LM]=(ALL-AMM)*SINCS+ALM*(COSX2-SINX2);
} /* for M=L+1 to N-1 */
} /* for L=0 to N-2 */
} while( IND != 0 );
} /* while THR > ANORMX */
done: ;
/* Extract eigenvalues from the reduced matrix */
L=0; for( J=1; J<=N; J++ )
{
L=L+J;
E[J-1]=A[L-1];
}
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.9 Sekunden
(vorverarbeitet am 2026-06-14)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.