892 int xkoord, r, rtest, xk, mtest;
896 for ( xkoord= 0; xkoord < anzm; xkoord++ ) {
898 for ( r= 0; r < anzr; r++ ) {
902 for ( xk =0; xk <= xkoord; xk++ )
904 tmp -= (*
roots[xk])[r] *
mu[xkoord]->evPointCoord(xk+1);
908 for ( rtest= r; rtest < anzr; rtest++ ) {
909 zwerg = tmp - (*
roots[xk])[rtest] *
mu[xkoord]->evPointCoord(xk+1);
910 for ( mtest= 0; mtest < anzr; mtest++ )
914 if ( ((zwerg.
real() <= (*
mu[xkoord])[mtest].real() + mprec) &&
915 (zwerg.
real() >= (*
mu[xkoord])[mtest].real() - mprec)) &&
916 ((zwerg.
imag() <= (*
mu[xkoord])[mtest].imag() + mprec) &&
917 (zwerg.
imag() >= (*
mu[xkoord])[mtest].imag() - mprec)) )
927 WarnS(
"rootArranger::arrange: precision lost");
934 Warn(
"rootArranger::arrange: No match? coord %d, root %d.",xkoord,r);
936 WarnS(
"One of these ...");
937 for ( rtest= r; rtest < anzr; rtest++ )
940 for ( xk =0; xk <= xkoord; xk++ )
942 tmp-= (*
roots[xk])[r] *
mu[xkoord]->evPointCoord(xk+1);
944 tmp-= (*
roots[xk])[rtest] *
mu[xkoord]->evPointCoord(xk+1);
947 WarnS(
" ... must match to one of these:");
948 for ( mtest= 0; mtest < anzr; mtest++ )
bool swapRoots(const int from, const int to)
gmp_complex numbers based on
char * complexToStr(gmp_complex &c, const unsigned int oprec, const coeffs src)
Rational pow(const Rational &a, int e)