1
#ifndef FIELD_RATIONALFUNCTIONS_H_INCLUDED
2
#define FIELD_RATIONALFUNCTIONS_H_INCLUDED
6
#include "polynomial.h"
10
class FieldRationalFunctionsImplementation : public FieldImplementation
12
Field coefficientField;
14
PolynomialRing thePolynomialRing;
15
FieldElementImplementation *zHomomorphismImplementation(int n);/* Creates FieldElementImplementation object with refcount1 */
16
FieldElement zHomomorphism(int n);
18
std::string toString()const;
20
virtual bool isRationals()const;
21
FieldRationalFunctionsImplementation(Field const &f_, string const ¶meterName_);
22
PolynomialRing getPolynomialRing()const;
27
// Let's see how inheritance and slicing work together
28
class FieldRationalFunctions : public Field
31
FieldRationalFunctions(Field const &coefficientField, string const ¶meterName);
32
FieldElement exponent(int power);
33
FieldElement fromCoefficientField(FieldElement const &c);
35
This function gives a value in the coefficient field by substituting the perturbation variable by tvalue.
36
In case the denominator becomes zero during this process the routine asserts.
38
FieldElement substitute(FieldElement const &e, FieldElement const &tvalue)const;
41
void testRationalFunctionField();//test routine