884{
888 int xkoord, r, rtest, xk, mtest;
890
891
892 for ( xkoord= 0; xkoord < anzm; xkoord++ ) {
894 for ( r= 0; r < anzr; r++ ) {
895
896
898 for ( xk =0; xk <= xkoord; xk++ )
899 {
900 tmp -= (*
roots[xk])[r] *
mu[xkoord]->evPointCoord(xk+1);
901 }
903 do {
904 for ( rtest= r; rtest < anzr; rtest++ ) {
905 zwerg = tmp - (*
roots[xk])[rtest] *
mu[xkoord]->evPointCoord(xk+1);
906 for ( mtest= 0; mtest < anzr; mtest++ )
907 {
908
909
910 if ( ((zwerg.
real() <= (*
mu[xkoord])[mtest].real() + mprec) &&
911 (zwerg.
real() >= (*
mu[xkoord])[mtest].real() - mprec)) &&
912 ((zwerg.
imag() <= (*
mu[xkoord])[mtest].imag() + mprec) &&
913 (zwerg.
imag() >= (*
mu[xkoord])[mtest].imag() - mprec)) )
914 {
917 break;
918 }
919 }
920 }
922 {
923 WarnS(
"rootArranger::arrange: precision lost");
924 mprec*=10;
925 }
927#if 0
929 {
930 Warn(
"rootArranger::arrange: No match? coord %d, root %d.",xkoord,r);
931
932 WarnS(
"One of these ...");
933 for ( rtest= r; rtest < anzr; rtest++ )
934 {
936 for ( xk =0; xk <= xkoord; xk++ )
937 {
938 tmp-= (*
roots[xk])[r] *
mu[xkoord]->evPointCoord(xk+1);
939 }
940 tmp-= (*
roots[xk])[rtest] *
mu[xkoord]->evPointCoord(xk+1);
942 }
943 WarnS(
" ... must match to one of these:");
944 for ( mtest= 0; mtest < anzr; mtest++ )
945 {
947 }
948
949 }
950#endif
951 }
952 }
953}
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)