Changeset d268a9 in git for Singular/clapconv.cc
- Timestamp:
- Dec 8, 2000, 6:26:23 PM (23 years ago)
- Branches:
- (u'spielwiese', '8e0ad00ce244dfd0756200662572aef8402f13d5')
- Children:
- 4e461ff1df145d7679c725489c921162884348f8
- Parents:
- b989766c9307859dd7f91bf01c25470f338005bb
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/clapconv.cc
rb98976 rd268a9 3 3 * Computer Algebra System SINGULAR * 4 4 ****************************************/ 5 // $Id: clapconv.cc,v 1.3 1 2000-12-08 13:42:08Singular Exp $5 // $Id: clapconv.cc,v 1.32 2000-12-08 17:26:22 Singular Exp $ 6 6 /* 7 7 * ABSTRACT: convert data between Singular and factory … … 28 28 29 29 static void convRecPP ( const CanonicalForm & f, int * exp, poly & result ); 30 static void conv_RecPP ( const CanonicalForm & f, int * exp, poly & result, ring r ); 30 31 31 32 static void convRecPTr ( const CanonicalForm & f, int * exp, napoly & result ); … … 106 107 } 107 108 108 CanonicalForm 109 convSingPClapP( poly p ) 109 CanonicalForm conv_SingPClapP( poly p, ring r ) 110 110 { 111 111 CanonicalForm result = 0; 112 int e, n = pVariables;113 assume( rPar( currRing)==0);112 int e, n = r->N; 113 assume( rPar(r)==0); 114 114 115 115 while ( p != NULL ) … … 155 155 for ( int i = 1; i <= n; i++ ) 156 156 { 157 if ( (e = p GetExp( p, i)) != 0 )157 if ( (e = p_GetExp( p, i, r )) != 0 ) 158 158 term *= power( Variable( i ), e ); 159 159 } … … 164 164 } 165 165 166 poly 167 convClapPSingP ( const CanonicalForm & f ) 166 poly convClapPSingP ( const CanonicalForm & f ) 168 167 { 169 168 // cerr << " f = " << f << endl; … … 179 178 } 180 179 181 static void 182 convRecPP ( const CanonicalForm & f, int * exp, poly & result ) 180 static void convRecPP ( const CanonicalForm & f, int * exp, poly & result ) 183 181 { 184 182 if (f == 0) … … 234 232 { 235 233 result = pAdd( result, term ); 234 } 235 } 236 } 237 238 poly conv_ClapPSingP ( const CanonicalForm & f, ring r ) 239 { 240 // cerr << " f = " << f << endl; 241 int n = r->N+1; 242 /* ASSERT( level( f ) <= pVariables, "illegal number of variables" ); */ 243 int * exp = new int[n]; 244 //for ( int i = 0; i < n; i++ ) exp[i] = 0; 245 memset(exp,0,n*sizeof(int)); 246 poly result = NULL; 247 conv_RecPP( f, exp, result, r ); 248 delete [] exp; 249 return result; 250 } 251 252 static void 253 conv_RecPP ( const CanonicalForm & f, int * exp, poly & result, ring r ) 254 { 255 if (f == 0) 256 return; 257 if ( ! f.inCoeffDomain() ) 258 { 259 int l = f.level(); 260 for ( CFIterator i = f; i.hasTerms(); i++ ) 261 { 262 exp[l] = i.exp(); 263 conv_RecPP( i.coeff(), exp, result, r ); 264 } 265 exp[l] = 0; 266 } 267 else 268 { 269 poly term = p_Init(r); 270 pNext( term ) = NULL; 271 for ( int i = 1; i <= r->N; i++ ) 272 p_SetExp( term, i, exp[i], r); 273 if (rRing_has_Comp(r)) p_SetComp(term, 0, r); 274 if ( getCharacteristic() != 0 ) 275 { 276 pGetCoeff( term ) = n_Init( f.intval(), r ); 277 } 278 else 279 { 280 if ( f.isImm() ) 281 pGetCoeff( term ) = n_Init( f.intval(), r ); 282 else 283 { 284 number z=(number)omAllocBin(rnumber_bin); 285 #if defined(LDEBUG) 286 z->debug=123456; 287 #endif 288 z->z = gmp_numerator( f ); 289 if ( f.den() == 1 ) 290 z->s = 3; 291 else 292 { 293 z->n = gmp_denominator( f ); 294 z->s = 0; 295 } 296 pGetCoeff( term ) = z; 297 } 298 } 299 p_Setm( term, r ); 300 if ( n_IsZero(pGetCoeff(term), r) ) 301 { 302 p_Delete(&term,r); 303 } 304 else 305 { 306 result = p_Add_q( result, term, r ); 236 307 } 237 308 }
Note: See TracChangeset
for help on using the changeset viewer.