Bertini 2 - C++ Core
Software for Numerical Algebraic Geometry
Loading...
Searching...
No Matches
bertini::policy::CloneGiven< SystemType, StartSystemType > Struct Template Reference

#include <policies.hpp>

Inheritance diagram for bertini::policy::CloneGiven< SystemType, StartSystemType >:
[legend]
Collaboration diagram for bertini::policy::CloneGiven< SystemType, StartSystemType >:
[legend]

Public Member Functions

 CloneGiven (SystemType const &target)
 
SystemT & Homotopy ()
 
const SystemT & Homotopy () const
 
void Homotopy (StoredSystemT const &sys)
 
StartSystemT & StartSystem ()
 
const StartSystemT & StartSystem () const
 
void StartSystem (StoredStartSystemT const &sys)
 
void SystemSetup (std::string const &path_variable_name)
 Sets up the homotopy for the system to be solved.
 
SystemT & TargetSystem ()
 
const SystemT & TargetSystem () const
 
void TargetSystem (StoredSystemT const &sys)
 
- Public Member Functions inherited from bertini::policy::SysMgmtPolicy< CloneGiven< SystemType, StartSystemType >, SystemType, StartSystemType, SystemType, StartSystemType >
const SystemT & Homotopy () const
 
const SystemT & Homotopy () const
 
void Homotopy (StoredSystemT const &sys)
 
void Homotopy (StoredSystemT const &sys)
 
const StartSystemT & StartSystem () const
 
const StartSystemT & StartSystem () const
 
void StartSystem (StoredStartSystemT const &sys)
 
void StartSystem (StoredStartSystemT const &sys)
 
const SystemT & TargetSystem () const
 
const SystemT & TargetSystem () const
 
void TargetSystem (StoredSystemT const &sys)
 
void TargetSystem (StoredSystemT const &sys)
 

Static Public Member Functions

template<typename T>
static T AtSet (T const &sys)
 
static void PrepareTarget (SystemType &target)
 

Detailed Description

template<typename SystemType, typename StartSystemType>
struct bertini::policy::CloneGiven< SystemType, StartSystemType >

This system management policy makes it so that the zero dim algorithm makes a clone of the supplied system when the algorithm is created. The zerodim algorithm, and others, will homogenize the system (that's why you want a clone, so it leaves your original system untouched), form a start system (of your type, inferred from the template parameter for the zerodim alg), and couple the two together into the homotopy used to track.

If you don't want it to take copies, or homogenize, etc, use a different policy.

See also
RefToGiven

Constructor & Destructor Documentation

◆ CloneGiven()

template<typename SystemType, typename StartSystemType>
bertini::policy::CloneGiven< SystemType, StartSystemType >::CloneGiven ( SystemType const & target)
inline

Simply forward on the systems for the constructor. The AtConstruct function is to be called by the user of this policy, at construct time.

Member Function Documentation

◆ AtSet()

template<typename SystemType, typename StartSystemType>
template<typename T>
static T bertini::policy::CloneGiven< SystemType, StartSystemType >::AtSet ( T const & sys)
inlinestatic

In contrast at AtConstruct, the AtSet function copies the given system into the stored system when setting, after construction.

◆ Homotopy() [1/3]

template<typename SystemType, typename StartSystemType>
SystemT & bertini::policy::CloneGiven< SystemType, StartSystemType >::Homotopy ( )
inline

A getter for the homotopy being used.

Here is the caller graph for this function:

◆ Homotopy() [2/3]

template<typename SystemType, typename StartSystemType>
const SystemT & bertini::policy::SysMgmtPolicy< CloneGiven< SystemType, StartSystemType >, SystemType, StartSystemType, SystemType, StartSystemType >::Homotopy ( ) const
inline

A getter for the homotopy being used.

◆ Homotopy() [3/3]

template<typename SystemType, typename StartSystemType>
void bertini::policy::SysMgmtPolicy< CloneGiven< SystemType, StartSystemType >, SystemType, StartSystemType, SystemType, StartSystemType >::Homotopy ( StoredSystemT const & sys)
inline

A setter for the homotopy being used.

◆ PrepareTarget()

template<typename SystemType, typename StartSystemType>
static void bertini::policy::CloneGiven< SystemType, StartSystemType >::PrepareTarget ( SystemType & target)
inlinestatic

Homogenize and patch the target system.

Here is the caller graph for this function:

◆ StartSystem() [1/3]

template<typename SystemType, typename StartSystemType>
StartSystemT & bertini::policy::CloneGiven< SystemType, StartSystemType >::StartSystem ( )
inline

A getter for the start system being used.

Here is the caller graph for this function:

◆ StartSystem() [2/3]

template<typename SystemType, typename StartSystemType>
const StartSystemT & bertini::policy::SysMgmtPolicy< CloneGiven< SystemType, StartSystemType >, SystemType, StartSystemType, SystemType, StartSystemType >::StartSystem ( ) const
inline

A getter for the start system being used.

◆ StartSystem() [3/3]

template<typename SystemType, typename StartSystemType>
void bertini::policy::SysMgmtPolicy< CloneGiven< SystemType, StartSystemType >, SystemType, StartSystemType, SystemType, StartSystemType >::StartSystem ( StoredStartSystemT const & sys)
inline

A setter for the start system being used.

◆ SystemSetup()

template<typename SystemType, typename StartSystemType>
void bertini::policy::CloneGiven< SystemType, StartSystemType >::SystemSetup ( std::string const & path_variable_name)
inline

Sets up the homotopy for the system to be solved.

  1. Homogenizes the system,
  2. patches it,
  3. constructs the start system,
  4. stores the number of start points,
  5. makes a path variable,
  6. forms the straight line homotopy between target and start, with the gamma trick

boom, you're ready to go.

Here is the call graph for this function:

◆ TargetSystem() [1/3]

template<typename SystemType, typename StartSystemType>
SystemT & bertini::policy::CloneGiven< SystemType, StartSystemType >::TargetSystem ( )
inline

A getter for the system to be tracked to.

Here is the caller graph for this function:

◆ TargetSystem() [2/3]

template<typename SystemType, typename StartSystemType>
const SystemT & bertini::policy::SysMgmtPolicy< CloneGiven< SystemType, StartSystemType >, SystemType, StartSystemType, SystemType, StartSystemType >::TargetSystem ( ) const
inline

A getter for the system to be tracked to.

◆ TargetSystem() [3/3]

template<typename SystemType, typename StartSystemType>
void bertini::policy::SysMgmtPolicy< CloneGiven< SystemType, StartSystemType >, SystemType, StartSystemType, SystemType, StartSystemType >::TargetSystem ( StoredSystemT const & sys)
inline

A setter for the system to be tracked to.


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