Changeset 3426545 in git for libpolys


Ignore:
Timestamp:
Jun 18, 2013, 6:24:27 PM (11 years ago)
Author:
Oleksandr Motsak <motsak@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
593701c3d9a3d7851247b1e1603c209005e89f8e
Parents:
b7f609648177988c64be717b8badbaf38f56ff8a
Message:
Misc. osx/no-implicit-templates/static build-related changes
Location:
libpolys/polys
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • libpolys/polys/clapsing.cc

    rb7f609 r3426545  
    88
    99//#define FACTORIZE2_DEBUG
     10
    1011#ifdef HAVE_CONFIG_H
    1112#include "config.h"
    1213#endif /* HAVE_CONFIG_H */
     14
    1315#include <misc/auxiliary.h>
    1416
    1517#ifdef HAVE_FACTORY
     18
    1619#define SI_DONT_HAVE_GLOBAL_VARS
    1720
     21#include <misc/auxiliary.h>
     22#include "clapsing.h"
     23
    1824#include <factory/factory.h>
    1925
    2026#ifdef HAVE_LIBFAC
    21 #include <factory/libfac/libfac.h>
     27#    include <factory/libfac/libfac.h>
    2228#endif
    2329
     
    3642//#include "polys.h"
    3743#define TRANSEXT_PRIVATES
     44
    3845#include "ext_fields/transext.h"
    3946
    4047
    41 #include "clapsing.h"
    4248#include "clapconv.h"
    4349// #include <kernel/clapconv.h>
     50
     51#include <polys/monomials/p_polys.h>
     52#include <polys/monomials/ring.h>
     53#include <polys/simpleideals.h>
     54#include <misc/intvec.h>
     55#include <polys/matpol.h>
     56#include <coeffs/bigintmat.h>
    4457
    4558
     
    455468    }
    456469  }
    457   #if 0 // not yet working
     470#if 0 // not yet working
    458471  else if (rField_is_GF())
    459472  {
     
    463476    res = convFactoryGFSingGF( F / G );
    464477  }
    465   #endif
     478#endif
    466479  else
    467480    WerrorS( feNotImplemented );
     
    701714        // no break
    702715      case 1: ;
    703       #ifdef TEST
     716#ifdef TEST
    704717      default: ;
    705       #endif
     718#endif
    706719    }
    707720    if (n==0)
     
    733746  Off(SW_RATIONAL);
    734747  On(SW_SYMMETRIC_FF);
    735   #ifdef HAVE_NTL
     748#ifdef HAVE_NTL
    736749  extern int prime_number;
    737750  if(rField_is_Q(r)) prime_number=0;
    738   #endif
     751#endif
    739752  CFFList L;
    740753  number N=NULL;
     
    845858        res->m[j] = convFactoryPSingP( J.getItem().factor(),r );
    846859      }
    847       #if 0
     860#if 0
    848861      else if (rField_is_GF())
    849862        res->m[j] = convFactoryGFSingGF( J.getItem().factor() );
    850       #endif
     863#endif
    851864      else if (rField_is_Extension(r))     /* Q(a), Fp(a) */
    852865      {
     
    890903      {
    891904        int jj;
    892         #ifdef FACTORIZE2_DEBUG
     905#ifdef FACTORIZE2_DEBUG
    893906        printf("factorize_retry\n");
    894         #endif
     907#endif
    895908        intvec *ww=NULL;
    896909        id_Test(res,r);
     
    922935      {
    923936        WarnS("problem with factorize");
    924         #if 0
     937#if 0
    925938        pWrite(ff);
    926939        idShow(res);
    927         #endif
     940#endif
    928941        id_Delete(&res,r);
    929942        res=idInit(2,1);
     
    10271040  return res;
    10281041}
    1029 #ifdef HAVE_NTL
    1030 ideal singclap_absBiFactorize ( poly f, ideal & mipos, intvec ** exps, int & numFactors, const ring r)
    1031 {
    1032   p_Test(f, r);
    1033 
    1034   ideal res=NULL;
    1035 
    1036   int offs = rPar(r);
    1037   if (f==NULL)
    1038   {
    1039     res= idInit (1, 1);
    1040     mipos= idInit (1, 1);
    1041     mipos->m[0]= convFactoryPSingTrP (Variable (offs), r); //overkill
    1042     (*exps)=new intvec (1);
    1043     (**exps)[0]= 1;
    1044     numFactors= 0;
    1045     return res;
    1046   }
    1047   CanonicalForm F( convSingTrPFactoryP( f, r) );
    1048 
    1049   if (getNumVars (F) > 2)
    1050   {
    1051     WerrorS( feNotImplemented );
    1052     return res;
    1053   }
    1054   CFAFList absFactors= absFactorize (F);
    1055 
    1056   int n= absFactors.length();
    1057   *exps=new intvec (n);
    1058 
    1059   res= idInit (n, 1);
    1060 
    1061   mipos= idInit (n, 1);
    1062 
    1063   Variable x= Variable (offs);
    1064   Variable alpha;
    1065   int i= 0;
    1066   numFactors= 0;
    1067   int count;
    1068   CFAFListIterator iter= absFactors;
    1069   CanonicalForm lead= iter.getItem().factor();
    1070   if (iter.getItem().factor().inCoeffDomain())
    1071   {
    1072     i++;
    1073     iter++;
    1074   }
    1075   bool isRat= isOn (SW_RATIONAL);
    1076   if (!isRat)
    1077     On (SW_RATIONAL);
    1078   for (; iter.hasItem(); iter++, i++)
    1079   {
    1080     (**exps)[i]= iter.getItem().exp();
    1081     alpha= iter.getItem().minpoly().mvar();
    1082     if (iter.getItem().minpoly().isOne())
    1083       lead /= power (bCommonDen (iter.getItem().factor()), iter.getItem().exp());
    1084     else
    1085       lead /= power (power (bCommonDen (iter.getItem().factor()), degree (iter.getItem().minpoly())), iter.getItem().exp());
    1086     res->m[i]= convFactoryPSingTrP (replacevar (iter.getItem().factor()*bCommonDen (iter.getItem().factor()), alpha, x), r);
    1087     if (iter.getItem().minpoly().isOne())
    1088     {
    1089       count= iter.getItem().exp();
    1090       mipos->m[i]= convFactoryPSingTrP (x,r);
    1091     }
    1092     else
    1093     {
    1094       count= iter.getItem().exp()*degree (iter.getItem().minpoly());
    1095       mipos->m[i]= convFactoryPSingTrP (replacevar (iter.getItem().minpoly(), alpha, x), r);
    1096     }
    1097     numFactors += count;
    1098   }
    1099   if (!isRat)
    1100     Off (SW_RATIONAL);
    1101 
    1102   (**exps)[0]= 1;
    1103   res->m[0]= convFactoryPSingTrP (lead, r);
    1104   mipos->m[0]= convFactoryPSingTrP (x, r);
    1105   return res;
    1106 }
    1107 #endif
     1042
    11081043ideal singclap_sqrfree ( poly f, intvec ** v , int with_exps, const ring r)
    11091044{
     
    17231658  return mm;
    17241659}
     1660
     1661ideal singclap_absBiFactorize ( poly f, ideal & mipos, intvec ** exps, int & numFactors, const ring r)
     1662{
     1663  p_Test(f, r);
     1664
     1665  ideal res=NULL;
     1666
     1667  int offs = rPar(r);
     1668  if (f==NULL)
     1669  {
     1670    res= idInit (1, 1);
     1671    mipos= idInit (1, 1);
     1672    mipos->m[0]= convFactoryPSingTrP (Variable (offs), r); //overkill
     1673    (*exps)=new intvec (1);
     1674    (**exps)[0]= 1;
     1675    numFactors= 0;
     1676    return res;
     1677  }
     1678  CanonicalForm F( convSingTrPFactoryP( f, r) );
     1679
     1680  if (getNumVars (F) > 2)
     1681  {
     1682    WerrorS( feNotImplemented );
     1683    return res;
     1684  }
     1685  CFAFList absFactors= absFactorize (F);
     1686
     1687  int n= absFactors.length();
     1688  *exps=new intvec (n);
     1689
     1690  res= idInit (n, 1);
     1691
     1692  mipos= idInit (n, 1);
     1693
     1694  Variable x= Variable (offs);
     1695  Variable alpha;
     1696  int i= 0;
     1697  numFactors= 0;
     1698  int count;
     1699  CFAFListIterator iter= absFactors;
     1700  CanonicalForm lead= iter.getItem().factor();
     1701  if (iter.getItem().factor().inCoeffDomain())
     1702  {
     1703    i++;
     1704    iter++;
     1705  }
     1706  bool isRat= isOn (SW_RATIONAL);
     1707  if (!isRat)
     1708    On (SW_RATIONAL);
     1709  for (; iter.hasItem(); iter++, i++)
     1710  {
     1711    (**exps)[i]= iter.getItem().exp();
     1712    alpha= iter.getItem().minpoly().mvar();
     1713    if (iter.getItem().minpoly().isOne())
     1714      lead /= power (bCommonDen (iter.getItem().factor()), iter.getItem().exp());
     1715    else
     1716      lead /= power (power (bCommonDen (iter.getItem().factor()), degree (iter.getItem().minpoly())), iter.getItem().exp());
     1717    res->m[i]= convFactoryPSingTrP (replacevar (iter.getItem().factor()*bCommonDen (iter.getItem().factor()), alpha, x), r);
     1718    if (iter.getItem().minpoly().isOne())
     1719    {
     1720      count= iter.getItem().exp();
     1721      mipos->m[i]= convFactoryPSingTrP (x,r);
     1722    }
     1723    else
     1724    {
     1725      count= iter.getItem().exp()*degree (iter.getItem().minpoly());
     1726      mipos->m[i]= convFactoryPSingTrP (replacevar (iter.getItem().minpoly(), alpha, x), r);
     1727    }
     1728    numFactors += count;
     1729  }
     1730  if (!isRat)
     1731    Off (SW_RATIONAL);
     1732
     1733  (**exps)[0]= 1;
     1734  res->m[0]= convFactoryPSingTrP (lead, r);
     1735  mipos->m[0]= convFactoryPSingTrP (x, r);
     1736  return res;
     1737}
     1738
    17251739#endif
    1726 #endif
     1740#endif /* HAVE_NTL */
    17271741
    17281742
  • libpolys/polys/clapsing.h

    rb7f609 r3426545  
    77*/
    88
    9 
    109#ifndef INCL_FACTORYSING_H
    1110#define INCL_FACTORYSING_H
    1211
    13 
    1412#ifdef HAVE_FACTORY
    1513
    16 #include <polys/monomials/p_polys.h>
    17 #include <polys/monomials/ring.h>
    18 #include <polys/simpleideals.h>
    19 #include <misc/intvec.h>
    20 #include <polys/matpol.h>
    21 #include <coeffs/bigintmat.h>
     14class bigintmat;
     15class intvec;
     16
     17struct snumber; typedef struct snumber *   number;
     18struct spolyrec; typedef struct spolyrec    polyrec; typedef polyrec *          poly;
     19struct ip_sring; typedef struct ip_sring *         ring;
     20struct sip_sideal; typedef struct sip_sideal *       ideal;
     21
     22class ip_smatrix; typedef ip_smatrix *       matrix;
     23
     24struct n_Procs_s; typedef struct  n_Procs_s  *coeffs;
     25
    2226//#include <polys/clapconv.h>
    2327//#include <kernel/longtrans.h>
     
    4549ideal singclap_sqrfree ( poly f, intvec ** v , int with_exps, const ring r );
    4650
    47 #ifdef HAVE_NTL
    48 #if 1
    49 matrix singntl_HNF(matrix A, const ring r);
     51# ifdef HAVE_NTL
     52#  if 1
     53matrix  singntl_HNF(matrix A, const ring r);
    5054intvec* singntl_HNF(intvec* A, const ring r);
    51 matrix singntl_LLL(matrix A, const ring r);
     55matrix  singntl_LLL(matrix A, const ring r);
    5256intvec* singntl_LLL(intvec* A, const ring r);
     57
    5358ideal singclap_absBiFactorize ( poly f, ideal & mipos, intvec ** exps, int & n, const ring r);
    54 #endif
    55 #endif
     59#  endif
     60# endif
    5661
    5762BOOLEAN singclap_isSqrFree(poly f, const ring r);
    5863
    59 #ifdef HAVE_LIBFAC
     64# ifdef HAVE_LIBFAC
    6065 matrix singclap_irrCharSeries ( ideal I, const ring r);
    6166 char* singclap_neworder ( ideal I, const ring r);
    62 #endif
     67# endif
    6368
    6469poly singclap_det( const matrix m, const ring r );
     
    7176#endif /* HAVE_FACTORY */
    7277
    73 
    7478#endif /* INCL_FACTORYSING_H */
    7579
Note: See TracChangeset for help on using the changeset viewer.