883{
887 int xkoord, r, rtest, xk, mtest;
889
890
891 for ( xkoord= 0; xkoord < anzm; xkoord++ ) {
893 for ( r= 0; r < anzr; r++ ) {
894
895
897 for ( xk =0; xk <= xkoord; xk++ )
898 {
899 tmp -= (*
roots[xk])[r] *
mu[xkoord]->evPointCoord(xk+1);
900 }
902 do {
903 for ( rtest= r; rtest < anzr; rtest++ ) {
904 zwerg = tmp - (*
roots[xk])[rtest] *
mu[xkoord]->evPointCoord(xk+1);
905 for ( mtest= 0; mtest < anzr; mtest++ )
906 {
907
908
909 if ( ((zwerg.
real() <= (*
mu[xkoord])[mtest].real() + mprec) &&
910 (zwerg.
real() >= (*
mu[xkoord])[mtest].real() - mprec)) &&
911 ((zwerg.
imag() <= (*
mu[xkoord])[mtest].imag() + mprec) &&
912 (zwerg.
imag() >= (*
mu[xkoord])[mtest].imag() - mprec)) )
913 {
916 break;
917 }
918 }
919 }
921 {
922 WarnS(
"rootArranger::arrange: precision lost");
923 mprec*=10;
924 }
926#if 0
928 {
929 Warn(
"rootArranger::arrange: No match? coord %d, root %d.",xkoord,r);
930
931 WarnS(
"One of these ...");
932 for ( rtest= r; rtest < anzr; rtest++ )
933 {
935 for ( xk =0; xk <= xkoord; xk++ )
936 {
937 tmp-= (*
roots[xk])[r] *
mu[xkoord]->evPointCoord(xk+1);
938 }
939 tmp-= (*
roots[xk])[rtest] *
mu[xkoord]->evPointCoord(xk+1);
941 }
942 WarnS(
" ... must match to one of these:");
943 for ( mtest= 0; mtest < anzr; mtest++ )
944 {
946 }
947
948 }
949#endif
950 }
951 }
952}
Rational pow(const Rational &a, int e)
gmp_complex numbers based on
bool swapRoots(const int from, const int to)
EXTERN_VAR size_t gmp_output_digits
char * complexToStr(gmp_complex &c, const unsigned int oprec, const coeffs src)