Changeset ac5686 in git
- Timestamp:
- May 5, 2010, 5:47:52 PM (13 years ago)
- Branches:
- (u'spielwiese', '0d6b7fcd9813a1ca1ed4220cfa2b104b97a0a003')
- Children:
- 1990de843c36aeaeb40e702d7d4a1ecc8ff753ea
- Parents:
- 3b1a8d2d42c74cbc3f3f8b25288fd7d79934d0d4
- git-author:
- Oleksandr Motsak <motsak@mathematik.uni-kl.de>2010-05-05 17:47:52+02:00
- git-committer:
- Mohamed Barakat <mohamed.barakat@rwth-aachen.de>2011-11-09 11:52:53+01:00
- Location:
- coeffs
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
coeffs/gnumpc.cc
r3b1a8d2 rac5686 46 46 if ( from != NULL ) 47 47 { 48 gmp_complex *res=new gmp_complex(numberFieldToFloat(from,QTOF ));48 gmp_complex *res=new gmp_complex(numberFieldToFloat(from,QTOF,aRing)); 49 49 return (number)res; 50 50 } … … 463 463 { 464 464 char *out; 465 out= complexToStr(*(gmp_complex*)a, gmp_output_digits );465 out= complexToStr(*(gmp_complex*)a, gmp_output_digits, r); 466 466 StringAppendS(out); 467 467 // omFreeSize((void *)out, (strlen(out)+1)* sizeof(char) ); -
coeffs/mpr_complex.cc
r3b1a8d2 rac5686 373 373 // makes a COPY of num! (Ist das gut?) 374 374 // 375 gmp_float numberToFloat( number num 375 gmp_float numberToFloat( number num, const coeffs src) 376 376 { 377 377 gmp_float r; 378 378 379 if ( rField_is_Q() )379 if ( nField_is_Q(src) ) 380 380 { 381 381 if ( num != NULL ) … … 389 389 if ( num->s == 0 ) 390 390 { 391 nlNormalize( num );391 nlNormalize( num, src ); 392 392 } 393 393 if (SR_HDL(num) & SR_INT) … … 414 414 } 415 415 } 416 else if ( rField_is_long_R() || rField_is_long_C())416 else if (nField_is_long_R(src) || nField_is_long_C(src)) 417 417 { 418 418 r= *(gmp_float*)num; 419 419 } 420 else if ( rField_is_R() )420 else if ( nField_is_R(src) ) 421 421 { 422 422 // Add some code here :-) … … 431 431 } 432 432 433 gmp_float numberFieldToFloat( number num, int k 433 gmp_float numberFieldToFloat( number num, int k, const coeffs src) 434 434 { 435 435 gmp_float r; … … 448 448 if ( num->s == 0 ) 449 449 { 450 nlNormalize( num );450 nlNormalize( num, src ); 451 451 } 452 452 if (SR_HDL(num) & SR_INT) … … 702 702 // converts a gmp_complex to a string ( <real part> + I * <imaginary part> ) 703 703 // 704 char *complexToStr( gmp_complex & c, const unsigned int oprec )704 char *complexToStr( gmp_complex & c, const unsigned int oprec, const coeffs src ) 705 705 { 706 706 char *out,*in_imag,*in_real; … … 713 713 in_imag=floatToStr( abs(c.imag()), oprec ); // get imaginary part 714 714 715 if ( rField_is_long_C())716 { 717 int len=(strlen(in_real)+strlen(in_imag)+7+strlen( currRing->parameter[0]))*sizeof(char);715 if (nField_is_long_C(src)) 716 { 717 int len=(strlen(in_real)+strlen(in_imag)+7+strlen(src->parameter[0]))*sizeof(char); 718 718 out=(char*)omAlloc(len); 719 719 memset(out,0,len); 720 720 if ( !c.real().isZero() ) // (-23-i*5.43) or (15.1+i*5.3) 721 sprintf(out,"(%s%s%s*%s)",in_real,c.imag().sign()>=0?"+":"-", currRing->parameter[0],in_imag);721 sprintf(out,"(%s%s%s*%s)",in_real,c.imag().sign()>=0?"+":"-",src->parameter[0],in_imag); 722 722 else // (-i*43) or (i*34) 723 723 { 724 724 if (c.imag().isOne()) 725 sprintf(out,"%s", currRing->parameter[0]);725 sprintf(out,"%s",src->parameter[0]); 726 726 else if (c.imag().isMOne()) 727 sprintf(out,"-%s", currRing->parameter[0]);727 sprintf(out,"-%s",src->parameter[0]); 728 728 else 729 sprintf(out,"(%s%s*%s)",c.imag().sign()>=0?"":"-", currRing->parameter[0],in_imag);729 sprintf(out,"(%s%s*%s)",c.imag().sign()>=0?"":"-",src->parameter[0],in_imag); 730 730 } 731 731 } -
coeffs/mpr_complex.h
r3b1a8d2 rac5686 159 159 gmp_float max( const gmp_float &, const gmp_float & ); 160 160 161 gmp_float numberToFloat( number num );162 gmp_float numberFieldToFloat( number num, int k );161 gmp_float numberToFloat( number num, const coeffs src ); 162 gmp_float numberFieldToFloat( number num, int k, const coeffs src ); 163 163 //char *floatToStr( const gmp_float & r, const unsigned int oprec ); 164 164 //<- … … 308 308 else 309 309 { 310 return gmp_complex( numberToFloat(num ) );311 } 312 } 313 314 char *complexToStr( gmp_complex & c, const unsigned int oprec );310 return gmp_complex( numberToFloat(num, r) ); 311 } 312 } 313 314 char *complexToStr( gmp_complex & c, const unsigned int oprec, const coeffs src ); 315 315 //<- 316 316
Note: See TracChangeset
for help on using the changeset viewer.