Changeset 2773fe in git
- Timestamp:
- Dec 16, 2013, 4:25:53 PM (9 years ago)
- Branches:
- (u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', 'a800fe4b3e9d37a38c5a10cc0ae9dfa0c15a4ee6')
- Children:
- 0ebf2c731d149c10e2377cfd061cddf19c85502b
- Parents:
- 1a688bac5a4cda9259d2e3370e235dae6231fc16
- git-author:
- Martin Lee <martinlee84@web.de>2013-12-16 16:25:53+01:00
- git-committer:
- Martin Lee <martinlee84@web.de>2014-01-20 16:45:03+01:00
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
factory/facMul.cc
r1a688ba r2773fe 405 405 if (b.getp() != 0) 406 406 { 407 ZZ_p::init (convertFacCF2NTLZZ (b.getpk()));408 407 CanonicalForm mipo= getMipo (alpha); 409 408 bool is_rat= isOn (SW_RATIONAL); … … 413 412 if (!is_rat) 414 413 Off (SW_RATIONAL); 414 #if (HAVE_FLINT && __FLINT_VERSION_MINOR >= 4) 415 fmpz_t FLINTp; 416 fmpz_mod_poly_t FLINTmipo; 417 fq_ctx_t fq_con; 418 fq_poly_t FLINTF, FLINTG; 419 420 fmpz_init (FLINTp); 421 422 convertCF2Fmpz (FLINTp, b.getpk()); 423 424 convertFacCF2Fmpz_mod_poly_t (FLINTmipo, mipo, FLINTp); 425 426 fq_ctx_init_modulus (fq_con, FLINTmipo, "Z"); 427 428 convertFacCF2Fq_poly_t (FLINTF, F, fq_con); 429 convertFacCF2Fq_poly_t (FLINTG, G, fq_con); 430 431 fq_poly_mul (FLINTF, FLINTF, FLINTG, fq_con); 432 433 CanonicalForm result= convertFq_poly_t2FacCF (FLINTF, F.mvar(), 434 alpha, fq_con); 435 436 fmpz_clear (FLINTp); 437 fmpz_mod_poly_clear (FLINTmipo); 438 fq_poly_clear (FLINTF, fq_con); 439 fq_poly_clear (FLINTG, fq_con); 440 fq_ctx_clear (fq_con); 441 return b (result); 442 #else 443 ZZ_p::init (convertFacCF2NTLZZ (b.getpk())); 415 444 ZZ_pX NTLmipo= to_ZZ_pX (convertFacCF2NTLZZX (mipo)); 416 445 ZZ_pE::init (NTLmipo); … … 418 447 ZZ_pEX NTLf= convertFacCF2NTLZZ_pEX (F, NTLmipo); 419 448 mul (NTLf, NTLf, NTLg); 449 420 450 return b (convertNTLZZ_pEX2CF (NTLf, F.mvar(), alpha)); 451 #endif 421 452 } 422 453 #ifdef HAVE_FLINT … … 439 470 convertFacCF2Fmpz_mod_poly_t (FLINTG, G, FLINTpk); 440 471 fmpz_mod_poly_mul (FLINTF, FLINTF, FLINTG); 441 CanonicalForm result= convertFmpz_mod_poly_t2FacCF (FLINTF, F.mvar(), 472 CanonicalForm result= convertFmpz_mod_poly_t2FacCF (FLINTF, F.mvar(),b); 442 473 fmpz_mod_poly_clear (FLINTG); 443 474 fmpz_mod_poly_clear (FLINTF); … … 466 497 if (hasFirstAlgVar (G, alpha) || hasFirstAlgVar (F, alpha)) 467 498 { 468 ZZ_p::init (convertFacCF2NTLZZ (b.getpk())); 499 #if (HAVE_FLINT && __FLINT_VERSION_MINOR >= 4) 500 fmpz_t FLINTp; 501 fmpz_mod_poly_t FLINTmipo; 502 fq_ctx_t fq_con; 503 504 fmpz_init (FLINTp); 505 convertCF2Fmpz (FLINTp, b.getpk()); 506 507 convertFacCF2Fmpz_mod_poly_t (FLINTmipo, getMipo (alpha), FLINTp); 508 509 fq_ctx_init_modulus (fq_con, FLINTmipo, "Z"); 510 511 CanonicalForm result; 512 469 513 if (F.inCoeffDomain() && !G.inCoeffDomain()) 470 514 { 471 ZZ_pX NTLmipo= to_ZZ_pX (convertFacCF2NTLZZX (getMipo (alpha))); 472 ZZ_pE::init (NTLmipo); 515 fq_poly_t FLINTG; 516 fmpz_poly_t FLINTF; 517 convertFacCF2Fmpz_poly_t (FLINTF, F); 518 convertFacCF2Fq_poly_t (FLINTG, G, fq_con); 519 520 fq_poly_scalar_mul_fq (FLINTG, FLINTG, FLINTF, fq_con); 521 522 result= convertFq_poly_t2FacCF (FLINTG, G.mvar(), alpha, fq_con); 523 fmpz_poly_clear (FLINTF); 524 fq_poly_clear (FLINTG, fq_con); 525 } 526 else if (!F.inCoeffDomain() && G.inCoeffDomain()) 527 { 528 fq_poly_t FLINTF; 529 fmpz_poly_t FLINTG; 530 531 convertFacCF2Fmpz_poly_t (FLINTG, G); 532 convertFacCF2Fq_poly_t (FLINTF, F, fq_con); 533 534 fq_poly_scalar_mul_fq (FLINTF, FLINTF, FLINTG, fq_con); 535 536 result= convertFq_poly_t2FacCF (FLINTF, F.mvar(), alpha, fq_con); 537 fmpz_poly_clear (FLINTG); 538 fq_poly_clear (FLINTF, fq_con); 539 } 540 else 541 { 542 fq_t FLINTF, FLINTG; 543 544 convertFacCF2Fq_t (FLINTF, F, fq_con); 545 convertFacCF2Fq_t (FLINTG, G, fq_con); 546 547 fq_mul (FLINTF, FLINTF, FLINTG, fq_con); 548 549 result= convertFq_t2FacCF (FLINTF, alpha); 550 fq_clear (FLINTF, fq_con); 551 fq_clear (FLINTG, fq_con); 552 } 553 554 fmpz_clear (FLINTp); 555 fmpz_mod_poly_clear (FLINTmipo); 556 fq_ctx_clear (fq_con); 557 558 return b (result); 559 #else 560 ZZ_p::init (convertFacCF2NTLZZ (b.getpk())); 561 ZZ_pX NTLmipo= to_ZZ_pX (convertFacCF2NTLZZX (getMipo (alpha))); 562 ZZ_pE::init (NTLmipo); 563 564 if (F.inCoeffDomain() && !G.inCoeffDomain()) 565 { 473 566 ZZ_pEX NTLg= convertFacCF2NTLZZ_pEX (G, NTLmipo); 474 567 ZZ_pX NTLf= convertFacCF2NTLZZpX (F); … … 478 571 else if (!F.inCoeffDomain() && G.inCoeffDomain()) 479 572 { 480 ZZ_pX NTLmipo= to_ZZ_pX (convertFacCF2NTLZZX (getMipo (alpha)));481 ZZ_pE::init (NTLmipo);482 573 ZZ_pX NTLg= convertFacCF2NTLZZpX (G); 483 574 ZZ_pEX NTLf= convertFacCF2NTLZZ_pEX (F, NTLmipo); … … 487 578 else 488 579 { 489 ZZ_pX NTLmipo= to_ZZ_pX (convertFacCF2NTLZZX (getMipo (alpha)));490 ZZ_pE::init (NTLmipo);491 580 ZZ_pX NTLg= convertFacCF2NTLZZpX (G); 492 581 ZZ_pX NTLf= convertFacCF2NTLZZpX (F); … … 495 584 return b (convertNTLZZpX2CF (rep (result), alpha)); 496 585 } 586 #endif 497 587 } 498 588 } … … 514 604 if (hasFirstAlgVar (F, alpha) || hasFirstAlgVar (G, alpha)) 515 605 { 606 #if (HAVE_FLINT && __FLINT_VERSION_MINOR >= 4) 607 nmod_poly_t FLINTmipo; 608 fq_nmod_ctx_t fq_con; 609 610 nmod_poly_init (FLINTmipo, getCharacteristic()); 611 convertFacCF2nmod_poly_t (FLINTmipo, getMipo (alpha)); 612 613 fq_nmod_ctx_init_modulus (fq_con, FLINTmipo, "Z"); 614 615 fq_nmod_poly_t FLINTF, FLINTG; 616 convertFacCF2Fq_nmod_poly_t (FLINTF, F, fq_con); 617 convertFacCF2Fq_nmod_poly_t (FLINTG, G, fq_con); 618 619 fq_nmod_poly_mul (FLINTF, FLINTF, FLINTG, fq_con); 620 621 result= convertFq_nmod_poly_t2FacCF (FLINTF, F.mvar(), alpha, fq_con); 622 623 fq_nmod_poly_clear (FLINTF, fq_con); 624 fq_nmod_poly_clear (FLINTG, fq_con); 625 nmod_poly_clear (FLINTmipo); 626 fq_nmod_ctx_clear (fq_con); 627 #else 516 628 zz_pX NTLMipo= convertFacCF2NTLzzpX (getMipo (alpha)); 517 629 zz_pE::init (NTLMipo); … … 520 632 mul (NTLF, NTLF, NTLG); 521 633 result= convertNTLzz_pEX2CF(NTLF, F.mvar(), alpha); 634 #endif 522 635 } 523 636 else … … 605 718 if (b.getp() != 0) 606 719 { 720 #if (HAVE_FLINT && __FLINT_VERSION_MINOR >= 4) 721 fmpz_t FLINTp; 722 fmpz_mod_poly_t FLINTmipo; 723 fq_ctx_t fq_con; 724 fq_poly_t FLINTF, FLINTG; 725 726 fmpz_init (FLINTp); 727 728 convertCF2Fmpz (FLINTp, b.getpk()); 729 730 convertFacCF2Fmpz_mod_poly_t (FLINTmipo, getMipo (alpha), FLINTp); 731 732 fq_ctx_init_modulus (fq_con, FLINTmipo, "Z"); 733 734 convertFacCF2Fq_poly_t (FLINTF, F, fq_con); 735 convertFacCF2Fq_poly_t (FLINTG, G, fq_con); 736 737 fq_poly_rem (FLINTF, FLINTF, FLINTG, fq_con); 738 739 CanonicalForm result= convertFq_poly_t2FacCF (FLINTF, F.mvar(), 740 alpha, fq_con); 741 742 fmpz_clear (FLINTp); 743 fmpz_mod_poly_clear (FLINTmipo); 744 fq_poly_clear (FLINTF, fq_con); 745 fq_poly_clear (FLINTG, fq_con); 746 fq_ctx_clear (fq_con); 747 748 return b(result); 749 #else 607 750 ZZ_p::init (convertFacCF2NTLZZ (b.getpk())); 608 751 ZZ_pX NTLmipo= to_ZZ_pX (convertFacCF2NTLZZX (getMipo (alpha))); … … 612 755 rem (NTLf, NTLf, NTLg); 613 756 return b (convertNTLZZ_pEX2CF (NTLf, F.mvar(), alpha)); 757 #endif 614 758 } 615 759 #ifdef HAVE_FLINT … … 634 778 if (hasFirstAlgVar (F, alpha) || hasFirstAlgVar (G, alpha)) 635 779 { 780 #if (HAVE_FLINT && __FLINT_VERSION_MINOR >= 4) 781 nmod_poly_t FLINTmipo; 782 fq_nmod_ctx_t fq_con; 783 784 nmod_poly_init (FLINTmipo, getCharacteristic()); 785 convertFacCF2nmod_poly_t (FLINTmipo, getMipo (alpha)); 786 787 fq_nmod_ctx_init_modulus (fq_con, FLINTmipo, "Z"); 788 789 fq_nmod_poly_t FLINTF, FLINTG; 790 convertFacCF2Fq_nmod_poly_t (FLINTF, F, fq_con); 791 convertFacCF2Fq_nmod_poly_t (FLINTG, G, fq_con); 792 793 fq_nmod_poly_rem (FLINTF, FLINTF, FLINTG, fq_con); 794 795 result= convertFq_nmod_poly_t2FacCF (FLINTF, F.mvar(), alpha, fq_con); 796 797 fq_nmod_poly_clear (FLINTF, fq_con); 798 fq_nmod_poly_clear (FLINTG, fq_con); 799 nmod_poly_clear (FLINTmipo); 800 fq_nmod_ctx_clear (fq_con); 801 #else 636 802 zz_pX NTLMipo= convertFacCF2NTLzzpX(getMipo (alpha)); 637 803 zz_pE::init (NTLMipo); … … 640 806 rem (NTLF, NTLF, NTLG); 641 807 result= convertNTLzz_pEX2CF(NTLF, F.mvar(), alpha); 808 #endif 642 809 } 643 810 else … … 679 846 hasFirstAlgVar (F, alpha); 680 847 hasFirstAlgVar (G, alpha); 848 #if (HAVE_FLINT && __FLINT_VERSION_MINOR >= 4) 849 fmpz_t FLINTp; 850 fmpz_mod_poly_t FLINTmipo; 851 fq_ctx_t fq_con; 852 fq_t FLINTF, FLINTG; 853 854 fmpz_init (FLINTp); 855 convertCF2Fmpz (FLINTp, b.getpk()); 856 857 convertFacCF2Fmpz_mod_poly_t (FLINTmipo, getMipo (alpha), FLINTp); 858 859 fq_ctx_init_modulus (fq_con, FLINTmipo, "Z"); 860 861 convertFacCF2Fq_t (FLINTF, F, fq_con); 862 convertFacCF2Fq_t (FLINTG, G, fq_con); 863 864 fq_inv (FLINTG, FLINTG, fq_con); 865 fq_mul (FLINTF, FLINTF, FLINTG, fq_con); 866 867 CanonicalForm result= convertFq_t2FacCF (FLINTF, alpha); 868 869 fmpz_clear (FLINTp); 870 fmpz_mod_poly_clear (FLINTmipo); 871 fq_clear (FLINTF, fq_con); 872 fq_clear (FLINTG, fq_con); 873 fq_ctx_clear (fq_con); 874 return b (result); 875 #else 681 876 ZZ_p::init (convertFacCF2NTLZZ (b.getpk())); 682 877 ZZ_pX NTLmipo= to_ZZ_pX (convertFacCF2NTLZZX (getMipo (alpha))); … … 687 882 div (result, to_ZZ_pE (NTLf), to_ZZ_pE (NTLg)); 688 883 return b (convertNTLZZpX2CF (rep (result), alpha)); 884 #endif 689 885 } 690 886 return b(div (F,G)); … … 700 896 Variable alpha; 701 897 hasFirstAlgVar (G, alpha); 898 #if (HAVE_FLINT && __FLINT_VERSION_MINOR >= 4) 899 fmpz_t FLINTp; 900 fmpz_mod_poly_t FLINTmipo; 901 fq_ctx_t fq_con; 902 fq_poly_t FLINTF; 903 fq_t FLINTG; 904 905 fmpz_init (FLINTp); 906 convertCF2Fmpz (FLINTp, b.getpk()); 907 908 convertFacCF2Fmpz_mod_poly_t (FLINTmipo, getMipo (alpha), FLINTp); 909 910 fq_ctx_init_modulus (fq_con, FLINTmipo, "Z"); 911 912 convertFacCF2Fq_poly_t (FLINTF, F, fq_con); 913 convertFacCF2Fq_t (FLINTG, G, fq_con); 914 915 fq_inv (FLINTG, FLINTG, fq_con); 916 fq_poly_scalar_mul_fq (FLINTF, FLINTF, FLINTG, fq_con); 917 918 CanonicalForm result= convertFq_poly_t2FacCF (FLINTF, F.mvar(), 919 alpha, fq_con); 920 921 fmpz_clear (FLINTp); 922 fmpz_mod_poly_clear (FLINTmipo); 923 fq_poly_clear (FLINTF, fq_con); 924 fq_clear (FLINTG, fq_con); 925 fq_ctx_clear (fq_con); 926 return b (result); 927 #else 702 928 ZZ_p::init (convertFacCF2NTLZZ (b.getpk())); 703 929 ZZ_pX NTLmipo= to_ZZ_pX (convertFacCF2NTLZZX (getMipo (alpha))); … … 707 933 div (NTLf, NTLf, to_ZZ_pE (NTLg)); 708 934 return b (convertNTLZZ_pEX2CF (NTLf, F.mvar(), alpha)); 935 #endif 709 936 } 710 937 return b(div (F,G)); … … 754 981 if (b.getp() != 0) 755 982 { 983 #if (HAVE_FLINT && __FLINT_VERSION_MINOR >= 4) 984 fmpz_t FLINTp; 985 fmpz_mod_poly_t FLINTmipo; 986 fq_ctx_t fq_con; 987 fq_poly_t FLINTF, FLINTG; 988 989 fmpz_init (FLINTp); 990 convertCF2Fmpz (FLINTp, b.getpk()); 991 992 convertFacCF2Fmpz_mod_poly_t (FLINTmipo, getMipo (alpha), FLINTp); 993 994 fq_ctx_init_modulus (fq_con, FLINTmipo, "Z"); 995 996 convertFacCF2Fq_poly_t (FLINTF, F, fq_con); 997 convertFacCF2Fq_poly_t (FLINTG, G, fq_con); 998 999 fq_poly_divrem (FLINTF, FLINTG, FLINTF, FLINTG, fq_con); 1000 1001 CanonicalForm result= convertFq_poly_t2FacCF (FLINTF, F.mvar(), 1002 alpha, fq_con); 1003 1004 fmpz_clear (FLINTp); 1005 fmpz_mod_poly_clear (FLINTmipo); 1006 fq_ctx_clear (fq_con); 1007 fq_poly_clear (FLINTF, fq_con); 1008 fq_poly_clear (FLINTG, fq_con); 1009 return b (result); 1010 #else 756 1011 ZZ_p::init (convertFacCF2NTLZZ (b.getpk())); 757 1012 ZZ_pX NTLmipo= to_ZZ_pX (convertFacCF2NTLZZX (getMipo (alpha))); … … 761 1016 div (NTLf, NTLf, NTLg); 762 1017 return b (convertNTLZZ_pEX2CF (NTLf, F.mvar(), alpha)); 1018 #endif 763 1019 } 764 1020 #ifdef HAVE_FLINT … … 783 1039 if (hasFirstAlgVar (F, alpha) || hasFirstAlgVar (G, alpha)) 784 1040 { 1041 #if (HAVE_FLINT && __FLINT_VERSION_MINOR >= 4) 1042 nmod_poly_t FLINTmipo; 1043 fq_nmod_ctx_t fq_con; 1044 1045 nmod_poly_init (FLINTmipo, getCharacteristic()); 1046 convertFacCF2nmod_poly_t (FLINTmipo, getMipo (alpha)); 1047 1048 fq_nmod_ctx_init_modulus (fq_con, FLINTmipo, "Z"); 1049 1050 fq_nmod_poly_t FLINTF, FLINTG; 1051 convertFacCF2Fq_nmod_poly_t (FLINTF, F, fq_con); 1052 convertFacCF2Fq_nmod_poly_t (FLINTG, G, fq_con); 1053 1054 fq_nmod_poly_divrem (FLINTF, FLINTG, FLINTF, FLINTG, fq_con); 1055 1056 result= convertFq_nmod_poly_t2FacCF (FLINTF, F.mvar(), alpha, fq_con); 1057 1058 fq_nmod_poly_clear (FLINTF, fq_con); 1059 fq_nmod_poly_clear (FLINTG, fq_con); 1060 nmod_poly_clear (FLINTmipo); 1061 fq_nmod_ctx_clear (fq_con); 1062 #else 785 1063 zz_pX NTLMipo= convertFacCF2NTLzzpX(getMipo (alpha)); 786 1064 zz_pE::init (NTLMipo); … … 789 1067 div (NTLF, NTLF, NTLG); 790 1068 result= convertNTLzz_pEX2CF(NTLF, F.mvar(), alpha); 1069 #endif 791 1070 } 792 1071 else
Note: See TracChangeset
for help on using the changeset viewer.