Changeset 618da5 in git


Ignore:
Timestamp:
Feb 15, 2011, 1:32:51 PM (13 years ago)
Author:
Martin Lee <martinlee84@…>
Branches:
(u'spielwiese', '17f1d200f27c5bd38f5dfc6e8a0879242279d1d8')
Children:
d1eacd6184ca6694692912918a2b547a086e4ce1
Parents:
c880c179f5777247d29dc13017c11fc651c7c366
Message:
bug fixes


git-svn-id: file:///usr/local/Singular/svn/trunk@13843 2c84dea3-7e68-4137-9b89-c4e89433aadc
Location:
factory
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • factory/cf_gcd_smallp.cc

    rc880c17 r618da5  
    15501550    L[i]= (*N) (i + 1, M.columns() + 1);
    15511551  M= (*N) (1, M.rows(), 1, M.columns());
     1552  delete N;
    15521553  return rk;
    15531554}
     
    15801581  for (int i= 0; i < M.rows(); i++)
    15811582    L[i]= (*N) (i + 1, M.columns() + 1);
     1583
     1584  delete N;
    15821585  return rk;
    15831586}
     
    16021605  long rk= gauss (*NTLN);
    16031606  if (rk != M.columns())
     1607  {
     1608    delete N;
    16041609    return CFArray();
    1605 
     1610  }
    16061611  N= convertNTLmat_zz_p2FacCFMatrix (*NTLN);
    16071612
    16081613  CFArray A= readOffSolution (*N, rk);
    16091614
     1615  delete N;
    16101616  return A;
    16111617}
     
    16311637  long rk= gauss (*NTLN);
    16321638  if (rk != M.columns())
     1639  {
     1640    delete N;
    16331641    return CFArray();
    1634 
     1642  }
    16351643  N= convertNTLmat_zz_pE2FacCFMatrix (*NTLN, alpha);
    16361644
    16371645  CFArray A= readOffSolution (*N, rk);
    16381646
     1647  delete N;
    16391648  return A;
    16401649}
     
    24512460    pMat= new CFMatrix [skelSize];
    24522461    pL[minimalColumnsIndex]= bufArray;
    2453     CFList* bufpEvalPoints;
     2462    CFList* bufpEvalPoints= NULL;
    24542463    CFArray bufGcds;
    24552464    if (biggestSize != biggestSize2)
     
    24772486          delete[] coeffMonoms;
    24782487          delete[] pM;
     2488          if (bufpEvalPoints != NULL)
     2489            delete [] bufpEvalPoints;
    24792490          fail= true;
    24802491          return 0;
     
    24902501            delete[] coeffMonoms;
    24912502            delete[] pM;
     2503            if (bufpEvalPoints != NULL)
     2504              delete [] bufpEvalPoints;
    24922505            fail= true;
    24932506            return 0;
     
    25772590        delete[] coeffMonoms;
    25782591        delete[] pM;
     2592        if (bufpEvalPoints != NULL)
     2593          delete [] bufpEvalPoints;
    25792594        fail= true;
    25802595        return 0;
     
    26212636      delete[] coeffMonoms;
    26222637      delete[] pM;
     2638      if (bufpEvalPoints != NULL)
     2639        delete [] bufpEvalPoints;
    26232640      fail= true;
    26242641      return 0;
     
    26412658    result= N(result);
    26422659    if (fdivides (result, F) && fdivides (result, G))
     2660    {
     2661      delete[] pEvalPoints;
     2662      delete[] pMat;
     2663      delete[] pL;
     2664      delete[] pM;
     2665      if (bufpEvalPoints != NULL)
     2666        delete [] bufpEvalPoints;
    26432667      return result;
     2668    }
    26442669    else
    26452670    {
     2671      delete[] pEvalPoints;
     2672      delete[] pMat;
     2673      delete[] pL;
     2674      delete[] coeffMonoms;
     2675      delete[] pM;
     2676      if (bufpEvalPoints != NULL)
     2677        delete [] bufpEvalPoints;
    26462678      fail= true;
    26472679      return 0;
     
    36593691  }
    36603692
    3661   if (both_non_zero == 0) return 0;
     3693  if (both_non_zero == 0)
     3694  {
     3695    delete [] degsf;
     3696    delete [] degsg;
     3697    return 0;
     3698  }
    36623699
    36633700  // map Variables which do not occur in both polynomials to higher levels
  • factory/cf_map_ext.cc

    rc880c17 r618da5  
    115115    if (pos == 0)
    116116    {
    117       alpha_power= power (alpha, counter);
     117      alpha_power= buf*power (alpha, counter);
    118118      dest.append (alpha_power);
    119119    }
    120120    else
    121121      alpha_power= getItem (dest, pos);
    122     result = alpha_power*buf;
     122    result = alpha_power;
    123123    return result;
    124124  }
     
    286286    if (pos == 0)
    287287    {
    288       H_power= power (H, counter);
     288      H_power= buf*power (H, counter);
    289289      dest.append (H_power);
    290290    }
    291291    else
    292292      H_power= getItem (dest, pos);
    293     result = H_power*buf;
     293    result = H_power;
    294294    return result;
    295295  }
     
    366366
    367367CanonicalForm
    368 mapPrimElem (const CanonicalForm& prim_elem, const Variable& alpha,
     368mapPrimElem (const CanonicalForm& primElem, const Variable& alpha,
    369369             const Variable& beta)
    370370{
    371   if (prim_elem == alpha)
     371  if (primElem == alpha)
    372372    return mapUp (alpha, beta);
    373373  else
    374374  {
    375     CanonicalForm im_alpha= mapUp (alpha, beta);
    376     CanonicalForm result= 0;
    377     for (CFIterator i= prim_elem; i.hasTerms(); i++)
    378       result += power (im_alpha, i.exp())*i.coeff();
    379     return result;
    380   }
     375    CanonicalForm primElemMipo= findMinPoly (primElem, alpha);
     376    int p= getCharacteristic ();
     377    zz_p::init (p);
     378    zz_pX NTLMipo= convertFacCF2NTLzzpX (getMipo (beta));
     379    zz_pE::init (NTLMipo);
     380    zz_pEX NTLPrimElemMipo= convertFacCF2NTLzz_pEX (primElemMipo, NTLMipo);
     381    zz_pE root= FindRoot (NTLPrimElemMipo);
     382    return convertNTLzzpE2CF (root, beta);
     383  }
     384}
     385
     386CanonicalForm
     387findMinPoly (const CanonicalForm& F, const Variable& alpha)
     388{
     389  ASSERT (F.isUnivariate() && F.mvar()==alpha,"expected element of F_p(alpha)");
     390
     391  zz_p::init (getCharacteristic());
     392  zz_pX NTLF= convertFacCF2NTLzzpX (F);
     393  int d= degree (getMipo (alpha));
     394
     395  zz_pX NTLMipo= convertFacCF2NTLzzpX (getMipo(alpha));
     396  zz_pE::init (NTLMipo);
     397  vec_zz_p pows;
     398  pows.SetLength (2*d);
     399
     400  zz_pE powNTLF;
     401  set (powNTLF);
     402  zz_pE NTLFE= to_zz_pE (NTLF);
     403  zz_pX buf;
     404  for (int i= 0; i < 2*d; i++)
     405  {
     406    buf= rep (powNTLF);
     407    buf.rep.SetLength (d);
     408    pows [i]= buf.rep[0];
     409    powNTLF *= NTLFE;
     410  }
     411
     412  zz_pX NTLMinPoly;
     413  MinPolySeq (NTLMinPoly, pows, d);
     414
     415  return convertNTLzzpX2CF (NTLMinPoly, Variable (1));
    381416}
    382417
  • factory/cf_map_ext.h

    rc880c17 r618da5  
    4545
    4646CanonicalForm Falpha2GFRep (const CanonicalForm& F);
     47
     48#ifdef HAVE_NTL
     49/// compute minimal polynomial of \f$ F\in\F_p(\alpha)\backslash\F_p \f$ via NTL
     50///
     51/// @return @a findMinPoly computes the minimal polynomial of F
     52CanonicalForm
     53findMinPoly (const CanonicalForm& F, ///< [in] an element of
     54                                     ///< \f$ \F_p(\alpha)\backslash\F_p \f$
     55             const Variable& alpha   ///< [in] algebraic variable
     56            );
    4757#endif
     58#endif
  • factory/facFqBivar.cc

    rc880c17 r618da5  
    12411241          ; //ERROR
    12421242        else
    1243           imPrimElem= mapPrimElem (primElem, vBuf, v);
     1243          imPrimElem= mapPrimElem (primElem, alpha, v);
    12441244
    12451245        CFList source, dest;
     
    12591259          ; //ERROR
    12601260        else
    1261           imPrimElem= mapPrimElem (delta, beta, v); //oder mapPrimElem (primElem, vBuf, v);
     1261          imPrimElem= mapPrimElem (delta, beta, v);
    12621262
    12631263        CFList source, dest;
     
    13241324          ; //ERROR
    13251325        else
    1326           imPrimElem= mapPrimElem (primElem, vBuf, v2);
     1326          imPrimElem= mapPrimElem (primElem, v1, v2);
    13271327
    13281328        CFList source, dest;
  • factory/facFqBivarUtil.cc

    rc880c17 r618da5  
    172172    return F;
    173173  else if (!k && beta != Variable (1))
    174     return mapDown (F, primElem, imPrimElem, beta, source, dest);
     174    return mapDown (F, imPrimElem, primElem, beta, source, dest);
    175175}
    176176
     
    211211    if (!isInExtension (g, delta, k))
    212212    {
    213       g= mapDown (g, gamma, delta, alpha, source, dest);
     213      g= mapDown (g, delta, gamma, alpha, source, dest);
    214214      factors.append (g);
    215215    }
     
    234234    factors.append (g);
    235235  else if (!k && beta != Variable (1))
    236     factors.append (mapDown (g, gamma, delta, alpha, source, dest));
     236    factors.append (mapDown (g, delta, gamma, alpha, source, dest));
    237237  return;
    238238}
  • factory/facFqFactorize.cc

    rc880c17 r618da5  
    19091909          ; //ERROR
    19101910        else
    1911           imPrimElem= mapPrimElem (primElem, vBuf, v);
     1911          imPrimElem= mapPrimElem (primElem, alpha, v);
    19121912
    19131913        CFList source, dest;
     
    19271927          ; //ERROR
    19281928        else
    1929           imPrimElem= mapPrimElem (delta, beta, v); //oder mapPrimElem (primElem, vBuf, v);
     1929          imPrimElem= mapPrimElem (delta, beta, v);
    19301930
    19311931        CFList source, dest;
     
    19891989        primElem= primitiveElement (v1, vBuf, primFail);
    19901990        if (primFail)
    1991         {
    19921991          ; //ERROR
    1993         }
    19941992        else
    1995         {
    1996           imPrimElem= mapPrimElem (primElem, vBuf, v2);
    1997         }
     1993          imPrimElem= mapPrimElem (primElem, v1, v2);
    19981994        CFList source, dest;
    1999         CanonicalForm bufA= mapUp (A, alpha, beta, primElem, imPrimElem,
     1995        CanonicalForm bufA= mapUp (A, v1, v2, primElem, imPrimElem,
    20001996                                     source, dest);
    20011997        ExtensionInfo info= ExtensionInfo (v2, v1, imPrimElem, primElem);
Note: See TracChangeset for help on using the changeset viewer.