Changeset 78e67e in git
- Timestamp:
- May 19, 2010, 3:29:07 PM (14 years ago)
- Branches:
- (u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
- Children:
- 890d63bbbc7613a022667f9ddf89a967cc6f29b6
- Parents:
- c41fbf0bdd4de6c2af503202f51e4838b376d632
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/gnumpc.cc
rc41fbf r78e67e 108 108 number ngcInit (int i, const ring r) 109 109 { 110 gmp_complex* n= NULL; 111 if ( i != 0 ) 112 { 113 n= new gmp_complex( (long)i, (long)0 ); 114 } 110 gmp_complex* n= new gmp_complex( (long)i, (long)0 ); 115 111 return (number)n; 116 112 } … … 121 117 int ngcInt(number &i, const ring r) 122 118 { 123 if ( i == NULL ) return 0;124 119 return (int)((gmp_complex*)i)->real(); 125 120 } … … 142 137 number ngcCopy(number a) 143 138 { 144 gmp_complex* b= NULL; 145 if ( a != NULL ) 146 { 147 b= new gmp_complex( *(gmp_complex*)a ); 148 } 139 gmp_complex* b= new gmp_complex( *(gmp_complex*)a ); 149 140 return (number)b; 150 141 } 151 142 number ngc_Copy(number a, ring r) 152 143 { 153 gmp_complex* b= NULL; 154 if ( a != NULL ) 155 { 156 b= new gmp_complex( *(gmp_complex*)a ); 157 } 144 gmp_complex* b=new gmp_complex( *(gmp_complex*)a ); 158 145 return (number)b; 159 146 } … … 166 153 number ngcNeg (number a) 167 154 { 168 if ( a == NULL ) return NULL;169 155 gmp_complex* r=(gmp_complex*)a; 170 156 (*r) *= ngc_m1; … … 178 164 { 179 165 gmp_complex* r = NULL; 180 if ( (a==NULL) 181 || (((gmp_complex*)a)->isZero())) 166 if (((gmp_complex*)a)->isZero()) 182 167 { 183 168 WerrorS(nDivBy0); … … 195 180 number ngcAdd (number a, number b) 196 181 { 197 gmp_complex* r= NULL; 198 if ( a==NULL && b==NULL ) 199 { 200 return NULL; 201 } 202 else if ( a == NULL ) 203 { 204 r= new gmp_complex( *(gmp_complex*)b ); 205 } 206 else if ( b == NULL ) 207 { 208 r= new gmp_complex( *(gmp_complex*)a ); 209 } 210 else 211 { 212 r= new gmp_complex( (*(gmp_complex*)a) + (*(gmp_complex*)b) ); 213 } 182 gmp_complex* r= new gmp_complex( (*(gmp_complex*)a) + (*(gmp_complex*)b) ); 214 183 return (number)r; 215 184 } … … 220 189 number ngcSub (number a, number b) 221 190 { 222 gmp_complex* r= NULL; 223 if ( a==NULL && b==NULL ) 224 { 225 return NULL; 226 } 227 else if ( a == NULL ) 228 { 229 r= new gmp_complex( (*(gmp_complex*)b) ); 230 r= (gmp_complex *)ngcNeg((number)r); 231 } 232 else if ( b == NULL ) 233 { 234 r= new gmp_complex( *(gmp_complex*)a ); 235 } 236 else 237 { 238 r= new gmp_complex( (*(gmp_complex*)a) - (*(gmp_complex*)b) ); 239 } 191 gmp_complex* r= new gmp_complex( (*(gmp_complex*)a) - (*(gmp_complex*)b) ); 240 192 return (number)r; 241 193 } … … 246 198 number ngcMult (number a, number b) 247 199 { 248 gmp_complex* r= NULL; 249 if ( a==NULL || b==NULL ) 250 { 251 return NULL; 252 } 253 else 254 { 255 r= new gmp_complex( (*(gmp_complex*)a) * (*(gmp_complex*)b) ); 256 } 200 gmp_complex* r= new gmp_complex( (*(gmp_complex*)a) * (*(gmp_complex*)b) ); 257 201 return (number)r; 258 202 } … … 263 207 number ngcDiv (number a, number b) 264 208 { 265 if ( a==NULL ) 266 { 267 // 0/b = 0 268 return NULL; 269 } 270 else if (( b==NULL ) 271 || (((gmp_complex*)b)->isZero())) 209 if (((gmp_complex*)b)->isZero()) 272 210 { 273 211 // a/0 = error … … 293 231 { 294 232 nNew(u); 295 if ( x == NULL ) 296 { 297 gmp_complex* n = new gmp_complex(); 298 *u=(number)n; 299 } 300 else 301 { 302 gmp_complex* n = new gmp_complex(); 303 *n= *(gmp_complex*)x; 304 *u=(number)n; 305 } 233 gmp_complex* n = new gmp_complex(); 234 *n= *(gmp_complex*)x; 235 *u=(number)n; 306 236 return; 307 237 } … … 309 239 { 310 240 nNew(u); 311 if ( x == NULL ) 312 { 313 gmp_complex* n = new gmp_complex(); 314 *u=(number)n; 315 } 316 else 317 { 318 gmp_complex* n = new gmp_complex(); 319 *n= *(gmp_complex*)x; 320 *u=(number)n; 321 *(gmp_complex*)(*u) *= *(gmp_complex*)n; 322 } 241 gmp_complex* n = new gmp_complex(); 242 *n= *(gmp_complex*)x; 243 *u=(number)n; 244 *(gmp_complex*)(*u) *= *(gmp_complex*)n; 323 245 return; 324 246 } … … 343 265 BOOLEAN ngcIsZero (number a) 344 266 { 345 if ( a == NULL ) return TRUE;346 267 return ( ((gmp_complex*)a)->real().isZero() && ((gmp_complex*)a)->imag().isZero()); 347 268 } … … 349 270 number ngcRePart(number a) 350 271 { 351 if ((a==NULL) || ((gmp_complex*)a)->real().isZero()) return NULL;352 272 gmp_complex* n = new gmp_complex(((gmp_complex*)a)->real()); 353 273 return (number)n; … … 356 276 number ngcImPart(number a) 357 277 { 358 if ((a==NULL) || ((gmp_complex*)a)->imag().isZero()) return NULL;359 278 gmp_complex* n = new gmp_complex(((gmp_complex*)a)->imag()); 360 279 return (number)n; … … 366 285 BOOLEAN ngcGreaterZero (number a) 367 286 { 368 if ( a == NULL ) return TRUE;369 287 if ( ! ((gmp_complex*)a)->imag().isZero() ) 370 288 return ( abs( *(gmp_complex*)a).sign() >= 0 ); … … 378 296 BOOLEAN ngcGreater (number a, number b) 379 297 { 380 if ( a==NULL ) 381 { 382 return (((gmp_complex*)b)->real().sign() < 0); 383 } 384 else if ( b==NULL ) 385 { 386 return (((gmp_complex*)a)->real().sign() < 0); 387 } 388 else 389 { 390 return ((gmp_complex*)a) > ((gmp_complex*)b); 391 } 392 return FALSE; 298 return ((gmp_complex*)a) > ((gmp_complex*)b); 393 299 } 394 300 … … 398 304 BOOLEAN ngcEqual (number a, number b) 399 305 { 400 if ( a == NULL && b == NULL )401 {402 return TRUE;403 }404 else if ( a == NULL || b == NULL )405 {406 return FALSE;407 }408 306 return ( (*(gmp_complex*)a) == (*(gmp_complex*)b) ); 409 307 } … … 414 312 BOOLEAN ngcIsOne (number a) 415 313 { 416 if ( a == NULL ) return FALSE; 417 //return (((gmp_complex*)a)->real().isOne() && ((gmp_complex*)a)->imag().isZero()); 418 return (((gmp_complex*)a)->real().isOne()); 314 return (((gmp_complex*)a)->real().isOne() && ((gmp_complex*)a)->imag().isZero()); 315 //return (((gmp_complex*)a)->real().isOne()); 419 316 } 420 317 … … 424 321 BOOLEAN ngcIsMOne (number a) 425 322 { 426 if ( a == NULL ) return FALSE; 427 // return (((gmp_complex*)a)->real().isMOne() && ((gmp_complex*)a)->imag().isZero()); 428 return (((gmp_complex*)a)->real().isMOne()); 323 return (((gmp_complex*)a)->real().isMOne() && ((gmp_complex*)a)->imag().isZero()); 324 //return (((gmp_complex*)a)->real().isMOne()); 429 325 } 430 326
Note: See TracChangeset
for help on using the changeset viewer.