Changeset 9fddd9 in git
- Timestamp:
- Sep 29, 1997, 6:06:41 PM (27 years ago)
- Branches:
- (u'spielwiese', '2a584933abf2a2d3082034c7586d38bb6de1a30a')
- Children:
- 424e5c278e7700cff91936a8d7f05c2b98fa3ea7
- Parents:
- b324a188f656b6a148c6f3c5d2cc340c1679c812
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
factory/canonicalform.h
rb324a18 r9fddd9 1 1 /* emacs edit mode for this file is -*- C++ -*- */ 2 /* $Id: canonicalform.h,v 1.1 6 1997-09-09 08:40:54schmidt Exp $ */2 /* $Id: canonicalform.h,v 1.17 1997-09-29 16:06:41 schmidt Exp $ */ 3 3 4 4 #ifndef INCL_CANONICALFORM_H … … 33 33 class InternalCF; 34 34 35 class CanonicalForm { 35 //{{{ class CanonicalForm 36 class CanonicalForm 37 { 36 38 private: 37 39 InternalCF *value; … … 143 145 friend class CFIterator; 144 146 }; 147 //}}} 145 148 146 149 // some useful functions 147 150 151 //{{{ function declarations from canonicalform.cc 152 CanonicalForm power ( const CanonicalForm & f, int n ); 153 154 CanonicalForm power ( const Variable & v, int n ); 155 156 bool divides ( const CanonicalForm & f, const CanonicalForm & g ); 157 //}}} 158 159 //{{{ function declarations from cf_gcd.cc 160 CanonicalForm gcd ( const CanonicalForm&, const CanonicalForm& ); 161 162 CanonicalForm extgcd ( const CanonicalForm&, const CanonicalForm&, CanonicalForm&, CanonicalForm& ); 163 164 CanonicalForm iextgcd ( const CanonicalForm&, const CanonicalForm&, CanonicalForm&, CanonicalForm& ); 165 166 CanonicalForm lcm ( const CanonicalForm&, const CanonicalForm& ); 167 168 CanonicalForm pp ( const CanonicalForm& ); 169 170 CanonicalForm content ( const CanonicalForm& ); 171 172 CanonicalForm content ( const CanonicalForm&, const Variable& ); 173 174 CanonicalForm icontent ( const CanonicalForm & f ); 175 //}}} 176 177 //{{{ function declarations from cf_ops.cc 178 CanonicalForm swapvar ( const CanonicalForm &, const Variable &, const Variable & ); 179 180 CanonicalForm replacevar ( const CanonicalForm &, const Variable &, const Variable & ); 181 182 int getNumVars( const CanonicalForm & f ); 183 184 CanonicalForm getVars( const CanonicalForm & f ); 185 186 CanonicalForm apply ( const CanonicalForm & f, void (*mf)( CanonicalForm &, int & ) ); 187 188 CanonicalForm mapdomain ( const CanonicalForm & f, CanonicalForm (*mf)( const CanonicalForm & ) ); 189 190 int * degrees ( const CanonicalForm & f, int * degs = 0 ); 191 192 int totaldegree ( const CanonicalForm & f ); 193 194 int totaldegree ( const CanonicalForm & f, const Variable & v1, const Variable & v2 ); 195 196 int size ( const CanonicalForm & f, const Variable & v ); 197 198 int size ( const CanonicalForm & f ); 199 //}}} 200 201 //{{{ inline functions 148 202 inline CanonicalForm 149 203 lc ( const CanonicalForm & f ) { return f.lc(); } … … 161 215 degree ( const CanonicalForm & f, const Variable & v ) { return f.degree( v ); } 162 216 163 int totaldegree ( const CanonicalForm & f );164 165 int totaldegree ( const CanonicalForm & f, const Variable & v1, const Variable & v2 );166 167 217 inline int 168 218 taildegree ( const CanonicalForm & f ) { return f.taildegree(); } … … 171 221 tailcoeff ( const CanonicalForm & f ) { return f.tailcoeff(); } 172 222 173 CanonicalForm power ( const CanonicalForm & f, int n ); 174 175 CanonicalForm power ( const Variable & v, int n ); 223 inline int 224 level ( const CanonicalForm & f ) { return f.level(); } 225 226 inline CanonicalForm 227 mvar ( const CanonicalForm & f ) { return f.mvar(); } 228 229 inline CanonicalForm 230 num ( const CanonicalForm & f ) { return f.num(); } 231 232 inline CanonicalForm 233 den ( const CanonicalForm & f ) { return f.den(); } 234 235 inline CanonicalForm 236 mapinto ( const CanonicalForm & f ) { return f.mapinto(); } 237 238 //{{{ inline CanonicalForm deriv ( const CanonicalForm & f, const Variable & x ) 239 //{{{ docu 240 // 241 // deriv() - inline function version of method deriv(). 242 // 243 //}}} 244 inline CanonicalForm 245 deriv ( const CanonicalForm & f, const Variable & x ) 246 { 247 return f.deriv(x); 248 } 249 //}}} 250 251 //{{{ inline CanonicalForm sqrt ( const CanonicalForm & a ) 252 //{{{ docu 253 // 254 // sqrt() - inline function version of method sqrt(). 255 // 256 //}}} 257 inline CanonicalForm 258 sqrt ( const CanonicalForm & a ) 259 { 260 return a.sqrt(); 261 } 262 //}}} 263 264 //{{{ inline int ilog2 ( const CanonicalForm & a ) 265 //{{{ docu 266 // 267 // ilog2() - inline function version of method ilog(). 268 // 269 //}}} 270 inline int 271 ilog2 ( const CanonicalForm & a ) 272 { 273 return a.ilog2(); 274 } 275 //}}} 176 276 177 277 inline CanonicalForm … … 184 284 } 185 285 186 inline int187 headdegree ( const CanonicalForm & f ) { return totaldegree( head( f ) ); }188 189 inline int190 level ( const CanonicalForm & f ) { return f.level(); }191 192 inline CanonicalForm193 mvar ( const CanonicalForm & f ) { return f.mvar(); }194 195 inline CanonicalForm196 num ( const CanonicalForm & f ) { return f.num(); }197 198 inline CanonicalForm199 den ( const CanonicalForm & f ) { return f.den(); }200 201 inline CanonicalForm202 mapinto ( const CanonicalForm & f ) { return f.mapinto(); }203 204 CanonicalForm swapvar ( const CanonicalForm &, const Variable &, const Variable & );205 206 CanonicalForm replacevar ( const CanonicalForm &, const Variable &, const Variable & );207 208 CanonicalForm gcd ( const CanonicalForm&, const CanonicalForm& );209 210 CanonicalForm extgcd ( const CanonicalForm&, const CanonicalForm&, CanonicalForm&, CanonicalForm& );211 212 CanonicalForm iextgcd ( const CanonicalForm&, const CanonicalForm&, CanonicalForm&, CanonicalForm& );213 214 CanonicalForm lcm ( const CanonicalForm&, const CanonicalForm& );215 216 CanonicalForm pp ( const CanonicalForm& );217 218 CanonicalForm content ( const CanonicalForm& );219 220 CanonicalForm content ( const CanonicalForm&, const Variable& );221 222 CanonicalForm icontent ( const CanonicalForm & f );223 224 CanonicalForm apply ( const CanonicalForm & f, void (*mf)( CanonicalForm &, int & ) );225 226 CanonicalForm mapdomain ( const CanonicalForm & f, CanonicalForm (*mf)( const CanonicalForm & ) );227 228 bool divides ( const CanonicalForm & f, const CanonicalForm & g );229 230 //{{{ inline CanonicalForm deriv ( const CanonicalForm & f, const Variable & x )231 //{{{ docu232 //233 // deriv() - inline function version of method deriv().234 //235 //}}}236 inline CanonicalForm237 deriv ( const CanonicalForm & f, const Variable & x )238 {239 return f.deriv(x);240 }241 //}}}242 243 286 inline CanonicalForm 244 287 abs ( const CanonicalForm & f ) … … 250 293 } 251 294 252 //{{{ inline CanonicalForm sqrt ( const CanonicalForm & a ) 253 //{{{ docu 254 // 255 // sqrt() - inline function version of method sqrt(). 256 // 257 //}}} 258 inline CanonicalForm 259 sqrt ( const CanonicalForm & a ) 260 { 261 return a.sqrt(); 262 } 263 //}}} 264 265 //{{{ inline int ilog2 ( const CanonicalForm & a ) 266 //{{{ docu 267 // 268 // ilog2() - inline function version of method ilog(). 269 // 270 //}}} 271 inline int 272 ilog2 ( const CanonicalForm & a ) 273 { 274 return a.ilog2(); 275 } 276 //}}} 277 278 int getNumVars( const CanonicalForm & f ); 279 CanonicalForm getVars( const CanonicalForm & f ); 280 281 int * degrees ( const CanonicalForm & f, int * degs = 0 ); 282 283 //CanonicalForm norm( const CanonicalForm & ); 284 285 //CanonicalForm igcd( const CanonicalForm & ); 286 287 //CanonicalForm ff2z( const CanonicalForm & ); 288 //CanonicalForm z2ff( const CanonicalForm & ); 289 295 inline int 296 headdegree ( const CanonicalForm & f ) { return totaldegree( head( f ) ); } 297 //}}} 298 299 //{{{ other function declarations 290 300 void setCharacteristic( int c ); // -> Fp && Q 291 301 void setCharacteristic( int c, int n ); // -> PrimePower … … 294 304 int getCharacteristic(); 295 305 int getGFDegree(); 296 297 306 CanonicalForm getGFGenerator(); 298 307 299 // misc template stuff for inst file 300 308 void On( int ); 309 void Off( int ); 310 bool isOn( int ); 311 //}}} 312 313 //{{{ type definitions 301 314 typedef Factor<CanonicalForm> CFFactor; 302 315 typedef List<CFFactor> CFFList; … … 306 319 typedef Array<CanonicalForm> CFArray; 307 320 typedef Matrix<CanonicalForm> CFMatrix; 308 309 void On( int ); 310 void Off( int ); 311 bool isOn( int ); 321 //}}} 312 322 313 323 /*ENDPUBLIC*/
Note: See TracChangeset
for help on using the changeset viewer.