Changeset 8fa570 in git


Ignore:
Timestamp:
Sep 19, 2012, 10:49:21 AM (12 years ago)
Author:
Martin Lee <martinlee84@…>
Branches:
(u'spielwiese', '17f1d200f27c5bd38f5dfc6e8a0879242279d1d8')
Children:
7c00d61e3be5c312038a1c42b49fdaea893ae3d1
Parents:
4473497abf51906fba12e775f998ec8cee9d2779
git-author:
Martin Lee <martinlee84@web.de>2012-09-19 10:49:21+02:00
git-committer:
Martin Lee <martinlee84@web.de>2012-10-25 15:11:13+02:00
Message:
chg: use FLINT linear algebra in sparse modular gcd
File:
1 edited

Legend:

Unmodified
Added
Removed
  • factory/cf_gcd_smallp.cc

    r447349 r8fa570  
    3939#ifdef HAVE_NTL
    4040#include <NTLconvert.h>
     41#endif
     42
     43#ifdef HAVE_FLINT
     44#include "FLINTconvert.h"
    4145#endif
    4246
     
    19811985  for (int i= 0; i < L.size(); i++, j++)
    19821986    (*N) (j, M.columns() + 1)= L[i];
     1987#ifdef HAVE_FLINT
     1988  nmod_mat_t FLINTN;
     1989  convertFacCFMatrix2nmod_mat_t (FLINTN, *N);
     1990  long* dummy= new long [M.rows()];
     1991  for (int i= 0; i < M.rows(); i++)
     1992    dummy[i]= 0;
     1993  long rk= nmod_mat_rref (dummy, FLINTN);
     1994
     1995  N= convertNmod_mat_t2FacCFMatrix (FLINTN);
     1996  nmod_mat_clear (FLINTN);
     1997  delete dummy;
     1998#else
    19831999  int p= getCharacteristic ();
    19842000  zz_p::init (p);
     
    19872003
    19882004  N= convertNTLmat_zz_p2FacCFMatrix (*NTLN);
     2005#endif
    19892006
    19902007  L= CFArray (M.rows());
     
    20422059  for (int i= 0; i < L.size(); i++, j++)
    20432060    (*N) (j, M.columns() + 1)= L[i];
     2061
     2062#ifdef HAVE_FLINT
     2063  nmod_mat_t FLINTN;
     2064  convertFacCFMatrix2nmod_mat_t (FLINTN, *N);
     2065  long* dummy= new long [M.rows()];
     2066  for (int i= 0; i < M.rows(); i++)
     2067    dummy[i]= 0;
     2068  long rk= nmod_mat_rref (dummy, FLINTN);
     2069#else
    20442070  int p= getCharacteristic ();
    20452071  zz_p::init (p);
    20462072  mat_zz_p *NTLN= convertFacCFMatrix2NTLmat_zz_p(*N);
    20472073  long rk= gauss (*NTLN);
     2074#endif
    20482075  if (rk != M.columns())
    20492076  {
     2077#ifdef HAVE_FLINT
     2078    nmod_mat_clear (FLINTN);
     2079    delete dummy;
     2080#endif
    20502081    delete N;
    20512082    return CFArray();
    20522083  }
     2084#ifdef HAVE_FLINT
     2085  N= convertNmod_mat_t2FacCFMatrix (FLINTN);
     2086  nmod_mat_clear (FLINTN);
     2087  delete dummy;
     2088#else
    20532089  N= convertNTLmat_zz_p2FacCFMatrix (*NTLN);
    2054 
     2090#endif
    20552091  CFArray A= readOffSolution (*N, rk);
    20562092
Note: See TracChangeset for help on using the changeset viewer.