Changeset 8ed7dc in git for Singular/dyn_modules/gfanlib/bbpolytope.cc
- Timestamp:
- Jan 16, 2017, 9:48:18 AM (7 years ago)
- Branches:
- (u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
- Children:
- 16e290ed6ed9a361fef149bc33d0b55909b2273e
- Parents:
- 2094fad4a01ad43e18993abc6366ff6b1ddb4fed5a1c7862e21daad552fae4eb1c7ac09cf3209280
- git-author:
- Hans Schoenemann <hannes@mathematik.uni-kl.de>2017-01-16 09:48:18+01:00
- git-committer:
- GitHub <noreply@github.com>2017-01-16 09:48:18+01:00
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/dyn_modules/gfanlib/bbpolytope.cc
r2094fa r8ed7dc 185 185 BOOLEAN polytopeViaVertices(leftv res, leftv args) 186 186 { 187 gfan::initializeCddlibIfRequired();188 187 leftv u = args; 189 188 if ((u != NULL) && ((u->Typ() == BIGINTMAT_CMD) || (u->Typ() == INTMAT_CMD))) 190 189 { 191 if (u->next == NULL) return ppCONERAYS1(res, u); 190 if (u->next == NULL) 191 { 192 gfan::initializeCddlibIfRequired(); 193 BOOLEAN bo = ppCONERAYS1(res, u); 194 gfan::deinitializeCddlibIfRequired(); 195 return bo; 196 } 192 197 leftv v = u->next; 193 198 if ((v != NULL) && (v->Typ() == INT_CMD)) 194 199 { 195 if (v->next == NULL) return ppCONERAYS3(res, u, v); 200 if (v->next == NULL) 201 { 202 gfan::initializeCddlibIfRequired(); 203 BOOLEAN bo = ppCONERAYS3(res, u, v); 204 gfan::deinitializeCddlibIfRequired(); 205 return bo; 206 } 196 207 } 197 208 } … … 320 331 BOOLEAN polytopeViaNormals(leftv res, leftv args) 321 332 { 322 gfan::initializeCddlibIfRequired();323 333 leftv u = args; 324 334 if ((u != NULL) && ((u->Typ() == BIGINTMAT_CMD) || (u->Typ() == INTMAT_CMD))) 325 335 { 326 if (u->next == NULL) return ppCONENORMALS1(res, u); 336 if (u->next == NULL) 337 { 338 gfan::initializeCddlibIfRequired(); 339 BOOLEAN bo = ppCONENORMALS1(res, u); 340 gfan::deinitializeCddlibIfRequired(); 341 return bo; 342 } 327 343 } 328 344 leftv v = u->next; 329 345 if ((v != NULL) && ((v->Typ() == BIGINTMAT_CMD) || (v->Typ() == INTMAT_CMD))) 330 346 { 331 if (v->next == NULL) return ppCONENORMALS2(res, u, v); 347 if (v->next == NULL) 348 { 349 gfan::initializeCddlibIfRequired(); 350 BOOLEAN bo = ppCONENORMALS2(res, u, v); 351 gfan::deinitializeCddlibIfRequired(); 352 return bo; 353 } 332 354 } 333 355 leftv w = v->next; 334 356 if ((w != NULL) && (w->Typ() == INT_CMD)) 335 357 { 336 if (w->next == NULL) return ppCONENORMALS3(res, u, v, w); 358 if (w->next == NULL) 359 { 360 gfan::initializeCddlibIfRequired(); 361 BOOLEAN bo = ppCONENORMALS3(res, u, v, w); 362 gfan::deinitializeCddlibIfRequired(); 363 return bo; 364 } 337 365 } 338 366 WerrorS("polytopeViaInequalities: unexpected parameters"); … … 342 370 BOOLEAN vertices(leftv res, leftv args) 343 371 { 344 gfan::initializeCddlibIfRequired();345 372 leftv u = args; 346 373 if ((u != NULL) && (u->Typ() == polytopeID)) 347 { 348 gfan::ZCone* zc = (gfan::ZCone*)u->Data(); 349 gfan::ZMatrix zmat = zc->extremeRays(); 350 res->rtyp = BIGINTMAT_CMD; 351 res->data = (void*)zMatrixToBigintmat(zmat); 352 return FALSE; 353 } 374 { 375 gfan::initializeCddlibIfRequired(); 376 gfan::ZCone* zc = (gfan::ZCone*)u->Data(); 377 gfan::ZMatrix zmat = zc->extremeRays(); 378 res->rtyp = BIGINTMAT_CMD; 379 res->data = (void*)zMatrixToBigintmat(zmat); 380 gfan::deinitializeCddlibIfRequired(); 381 return FALSE; 382 } 354 383 WerrorS("vertices: unexpected parameters"); 355 384 return TRUE; … … 401 430 BOOLEAN newtonPolytope(leftv res, leftv args) 402 431 { 403 gfan::initializeCddlibIfRequired();404 432 leftv u = args; 405 433 if ((u != NULL) && (u->Typ() == POLY_CMD)) 406 434 { 435 gfan::initializeCddlibIfRequired(); 407 436 poly p = (poly)u->Data(); 408 437 res->rtyp = polytopeID; 409 438 res->data = (void*) new gfan::ZCone(newtonPolytope(p,currRing)); 439 gfan::deinitializeCddlibIfRequired(); 410 440 return FALSE; 411 441 } … … 416 446 BOOLEAN scalePolytope(leftv res, leftv args) 417 447 { 418 gfan::initializeCddlibIfRequired();419 448 leftv u = args; 420 449 if ((u != NULL) && (u->Typ() == INT_CMD)) … … 423 452 if ((v != NULL) && (v->Typ() == polytopeID)) 424 453 { 454 gfan::initializeCddlibIfRequired(); 425 455 int s = (int)(long) u->Data(); 426 456 gfan::ZCone* zp = (gfan::ZCone*) v->Data(); … … 433 463 res->rtyp = polytopeID; 434 464 res->data = (void*) zq; 465 gfan::deinitializeCddlibIfRequired(); 435 466 return FALSE; 436 467 } … … 442 473 BOOLEAN dualPolytope(leftv res, leftv args) 443 474 { 444 gfan::initializeCddlibIfRequired();445 475 leftv u = args; 446 476 if ((u != NULL) && (u->Typ() == polytopeID)) 447 477 { 478 gfan::initializeCddlibIfRequired(); 448 479 gfan::ZCone* zp = (gfan::ZCone*) u->Data(); 449 480 gfan::ZCone* zq = new gfan::ZCone(zp->dualCone()); 450 481 res->rtyp = polytopeID; 451 482 res->data = (void*) zq; 483 gfan::deinitializeCddlibIfRequired(); 452 484 return FALSE; 453 485 } … … 458 490 BOOLEAN mixedVolume(leftv res, leftv args) 459 491 { 460 gfan::initializeCddlibIfRequired();461 492 leftv u = args; 462 493 if ((u != NULL) && (u->Typ() == LIST_CMD)) 463 494 { 495 gfan::initializeCddlibIfRequired(); 464 496 lists l = (lists) u->Data(); 465 497 int k = lSize(l)+1; … … 499 531 { 500 532 WerrorS("mixedVolume: entries of unsupported type in list"); 533 gfan::deinitializeCddlibIfRequired(); 501 534 return TRUE; 502 535 } … … 506 539 res->rtyp = BIGINT_CMD; 507 540 res->data = (void*) integerToNumber(mv); 541 gfan::deinitializeCddlibIfRequired(); 508 542 return FALSE; 509 543 }
Note: See TracChangeset
for help on using the changeset viewer.