Generated on for Gecode by doxygen 1.17.0

Example: Folium of Descartes More...

Public Member Functions

 DescartesFolium (const Options &opt)
 Actual model.
 DescartesFolium (DescartesFolium &p)
 Constructor for cloning p.
virtual Spacecopy (void)
 Copy during cloning.
virtual FloatVar cost (void) const
 Cost function.
virtual void print (std::ostream &os) const
 Print solution coordinates.
Public Member Functions inherited from Gecode::Driver::ScriptBase< Driver::ExtractStepOption< FloatMaximizeSpace > >
 ScriptBase (const Options &opt)
 Constructor.
 ScriptBase (ScriptBase &e)
 Constructor used for cloning.
virtual void compare (const Space &home, std::ostream &os) const
 Compare with s.
Public Member Functions inherited from Gecode::Driver::ExtractStepOption< BaseSpace >
 ExtractStepOption (const Options &opt)
 Constructor that extracts the step value.
 ExtractStepOption (BaseSpace &e)
 Constructor used for cloning.

Protected Attributes

FloatVarArray f
 The numbers.
double step
 Minimum distance between two solutions.

(Note that these are not member symbols.)

int main (int argc, char *argv[])
 Main-function.

Additional Inherited Members

Static Public Member Functions inherited from Gecode::Driver::ScriptBase< Driver::ExtractStepOption< FloatMaximizeSpace > >
static std::ostream & select_ostream (const char *sn, std::ofstream &ofs)
 Choose output stream according to sn.
static void run (const Options &opt, Script *s=nullptr)

Detailed Description

Example: Folium of Descartes

The folium of Descartes is a curve defined by the equation:

\[x^3 + y^3 - 3axy = 0 \]

A technique to solve it, is to write \(y=px\) and solve for \(x\) and \(y\) in terms of \(p\). By setting \(a=1\), it yields to the paramatric equation:

\[x^3 + y^3 - 3xy = 0 \]

\[x=\frac{3p}{1+p^3},\quad y=\frac{3p^2}{1+p^3} \]

The parameter \(p\) is related to the position on the curve and is constrained to get different solutions for \(x\) and \(y\). To get reasonable interval starting sizes, \(p\) and \(y\) are restricted to \([-20;20]\) and \(x\) is restricted to \([-1;2]\).

Definition at line 68 of file descartes-folium.cpp.

Constructor & Destructor Documentation

◆ DescartesFolium() [1/2]

DescartesFolium::DescartesFolium ( const Options & opt)
inline

Actual model.

Definition at line 76 of file descartes-folium.cpp.

◆ DescartesFolium() [2/2]

DescartesFolium::DescartesFolium ( DescartesFolium & p)
inline

Constructor for cloning p.

Definition at line 94 of file descartes-folium.cpp.

Member Function Documentation

◆ copy()

virtual Space * DescartesFolium::copy ( void )
inlinevirtual

Copy during cloning.

Definition at line 99 of file descartes-folium.cpp.

◆ cost()

virtual FloatVar DescartesFolium::cost ( void ) const
inlinevirtual

Cost function.

Definition at line 103 of file descartes-folium.cpp.

◆ print()

virtual void DescartesFolium::print ( std::ostream & os) const
inlinevirtual

Print solution coordinates.

Reimplemented from Gecode::Driver::ScriptBase< Driver::ExtractStepOption< FloatMaximizeSpace > >.

Definition at line 107 of file descartes-folium.cpp.

◆ main()

int main ( int argc,
char * argv[] )
related

Main-function.

Definition at line 117 of file descartes-folium.cpp.

Member Data Documentation

◆ f

FloatVarArray DescartesFolium::f
protected

The numbers.

Definition at line 71 of file descartes-folium.cpp.

◆ step

double DescartesFolium::step
protected

Minimum distance between two solutions.

Definition at line 73 of file descartes-folium.cpp.


The documentation for this class was generated from the following file: