Generated on for Gecode by doxygen 1.17.0

Example: Golden spiral More...

Public Member Functions

 GoldenSpiral (const Options &opt)
 Actual model.
 GoldenSpiral (GoldenSpiral &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.

(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: Golden spiral

The Golden Spiral is a logarithmic spiral whose growth factor is the golden ratio \(\phi=1,618\).

It is defined by the polar equation:

\[r = ae^{b\theta} \]

where

\[\operatorname{abs}(b) = \frac{\operatorname{ln}(\phi)}{\frac{\pi}{2}} \]

To get cartesian coordinates, it can be solved for \(x\) and \(y\) in terms of \(r\) and \(\theta\). By setting \(a=1\), it yields to the equation:

\[r = e^{0.30649\times\theta} \]

with

\[x=r\operatorname{cos}(\theta), \quad y=r\operatorname{sin}(\theta) \]

The tuple \((r,\theta)\) is related to the position for \(x\) and \(y\) on the curve. \(r\) and \(\theta\) are positive numbers.

To get reasonable interval starting sizes, \(x\) and \(y\) are restricted to \([-20;20]\).

Definition at line 77 of file golden-spiral.cpp.

Constructor & Destructor Documentation

◆ GoldenSpiral() [1/2]

GoldenSpiral::GoldenSpiral ( const Options & opt)
inline

Actual model.

Definition at line 83 of file golden-spiral.cpp.

◆ GoldenSpiral() [2/2]

GoldenSpiral::GoldenSpiral ( GoldenSpiral & p)
inline

Constructor for cloning p.

Definition at line 99 of file golden-spiral.cpp.

Member Function Documentation

◆ copy()

virtual Space * GoldenSpiral::copy ( void )
inlinevirtual

Copy during cloning.

Definition at line 104 of file golden-spiral.cpp.

◆ cost()

virtual FloatVar GoldenSpiral::cost ( void ) const
inlinevirtual

Cost function.

Definition at line 108 of file golden-spiral.cpp.

◆ print()

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

Print solution coordinates.

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

Definition at line 112 of file golden-spiral.cpp.

◆ main()

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

Main-function.

Definition at line 122 of file golden-spiral.cpp.

Member Data Documentation

◆ f

FloatVarArray GoldenSpiral::f
protected

The numbers.

Definition at line 80 of file golden-spiral.cpp.


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