Prusa Slicer 2.6.0
Loading...
Searching...
No Matches
libnest2d::opt::DummyOptimizer< T > Class Template Reference

#include <src/libnest2d/include/libnest2d/optimizer.hpp>

+ Inheritance diagram for libnest2d::opt::DummyOptimizer< T >:
+ Collaboration diagram for libnest2d::opt::DummyOptimizer< T >:

Public Member Functions

 DummyOptimizer ()
 
 DummyOptimizer (const StopCriteria &)
 
template<class Func , class... Args>
Result< Args... > optimize (Func &&, tuple< Args... >, Bound< Args >...)
 
template<class Func , class... Args>
Result< Args... > optimize_min (Func &&objectfunction, Input< Args... > initvals, Bound< Args >... bounds)
 Optimize for minimum value of the provided objectfunction.
 
template<class Func , class... Args>
Result< Args... > optimize_min (Func &&objectfunction, Input< Args... > initvals)
 
template<class... Args, class Func >
Result< Args... > optimize_min (Func &&objectfunction)
 
template<class Func , class... Args>
Result< Args... > optimize_max (Func &&objectfunction, Input< Args... > initvals, Bound< Args >... bounds)
 Same as optimize_min but optimizes for maximum function value.
 
template<class Func , class... Args>
Result< Args... > optimize_max (Func &&objectfunction, Input< Args... > initvals)
 
template<class... Args, class Func >
Result< Args... > optimize_max (Func &&objectfunction)
 

Protected Types

enum class  OptDir { MIN , MAX }
 

Protected Attributes

enum libnest2d::opt::Optimizer::OptDir dir_
 
StopCriteria stopcr_
 

Friends

class Optimizer< DummyOptimizer< T > >
 

Detailed Description

template<class T = void>
class libnest2d::opt::DummyOptimizer< T >

Member Enumeration Documentation

◆ OptDir

template<class Subclass >
enum class libnest2d::opt::Optimizer::OptDir
strongprotectedinherited
Enumerator
MIN 
MAX 
124 {
125 MIN,
126 MAX
127 } dir_;
enum libnest2d::opt::Optimizer::OptDir dir_

Constructor & Destructor Documentation

◆ DummyOptimizer() [1/2]

template<class T = void>
libnest2d::opt::DummyOptimizer< T >::DummyOptimizer ( )
inline
220 {
221 static_assert(always_false<T>::value, "Optimizer unimplemented!");
222 }
@ value
Definition common.hpp:95

◆ DummyOptimizer() [2/2]

template<class T = void>
libnest2d::opt::DummyOptimizer< T >::DummyOptimizer ( const StopCriteria )
inline
224 {
225 static_assert(always_false<T>::value, "Optimizer unimplemented!");
226 }

Member Function Documentation

◆ optimize()

template<class T = void>
template<class Func , class... Args>
Result< Args... > libnest2d::opt::DummyOptimizer< T >::optimize ( Func &&  ,
tuple< Args... >  ,
Bound< Args >  ... 
)
inline
232 {
233 return Result<Args...>();
234 }

◆ optimize_max() [1/3]

template<class Subclass >
template<class... Args, class Func >
Result< Args... > libnest2d::opt::Optimizer< Subclass >::optimize_max ( Func &&  objectfunction)
inlineinherited
203 {
205 return static_cast<Subclass*>(this)->template optimize<Func, Args...>(
206 forward<Func>(objectfunction),
207 Input<Args...>(),
208 Bound<Args>()... );
209 }
tuple< Args... > Input
Definition optimizer.hpp:51

References libnest2d::opt::Optimizer< Subclass >::dir_, and libnest2d::opt::Optimizer< Subclass >::MAX.

◆ optimize_max() [2/3]

template<class Subclass >
template<class Func , class... Args>
Result< Args... > libnest2d::opt::Optimizer< Subclass >::optimize_max ( Func &&  objectfunction,
Input< Args... >  initvals 
)
inlineinherited
195 {
197 return static_cast<Subclass*>(this)->template optimize<Func, Args...>(
198 forward<Func>(objectfunction), initvals, Bound<Args>()... );
199 }
tuple< Args... > initvals(Args...args)
Definition optimizer.hpp:54

References libnest2d::opt::Optimizer< Subclass >::dir_, libnest2d::opt::initvals(), and libnest2d::opt::Optimizer< Subclass >::MAX.

+ Here is the call graph for this function:

◆ optimize_max() [3/3]

template<class Subclass >
template<class Func , class... Args>
Result< Args... > libnest2d::opt::Optimizer< Subclass >::optimize_max ( Func &&  objectfunction,
Input< Args... >  initvals,
Bound< Args >...  bounds 
)
inlineinherited

Same as optimize_min but optimizes for maximum function value.

186 {
188 return static_cast<Subclass*>(this)->template optimize<Func, Args...>(
189 forward<Func>(objectfunction), initvals, bounds... );
190 }
Bounds< N > bounds(const Bound(&b)[N])
Definition Optimizer.hpp:192

References libnest2d::opt::Optimizer< Subclass >::dir_, libnest2d::opt::initvals(), and libnest2d::opt::Optimizer< Subclass >::MAX.

+ Here is the call graph for this function:

◆ optimize_min() [1/3]

template<class Subclass >
template<class... Args, class Func >
Result< Args... > libnest2d::opt::Optimizer< Subclass >::optimize_min ( Func &&  objectfunction)
inlineinherited
173 {
175 return static_cast<Subclass*>(this)->template optimize<Func, Args...>(
176 forward<Func>(objectfunction),
177 Input<Args...>(),
178 Bound<Args>()... );
179 }

References libnest2d::opt::Optimizer< Subclass >::dir_, and libnest2d::opt::Optimizer< Subclass >::MIN.

◆ optimize_min() [2/3]

template<class Subclass >
template<class Func , class... Args>
Result< Args... > libnest2d::opt::Optimizer< Subclass >::optimize_min ( Func &&  objectfunction,
Input< Args... >  initvals 
)
inlineinherited
165 {
167 return static_cast<Subclass*>(this)->template optimize<Func, Args...>(
168 forward<Func>(objectfunction), initvals, Bound<Args>()... );
169 }

References libnest2d::opt::Optimizer< Subclass >::dir_, libnest2d::opt::initvals(), and libnest2d::opt::Optimizer< Subclass >::MIN.

+ Here is the call graph for this function:

◆ optimize_min() [3/3]

template<class Subclass >
template<class Func , class... Args>
Result< Args... > libnest2d::opt::Optimizer< Subclass >::optimize_min ( Func &&  objectfunction,
Input< Args... >  initvals,
Bound< Args >...  bounds 
)
inlineinherited

Optimize for minimum value of the provided objectfunction.

Parameters
objectfunctionThe function that will be searched for the minimum return value.
initvalsA tuple with the initial values for the search
boundsA parameter pack with the bounds for each dimension.
Returns
Returns a Result<Args...> structure. An example call would be: auto result = opt.optimize_min( [](tuple<double> x) // object function { return std::pow(std::get<0>(x), 2); }, make_tuple(-0.5), // initial value {-1.0, 1.0} // search space bounds );
156 {
158 return static_cast<Subclass*>(this)->template optimize<Func, Args...>(
159 forward<Func>(objectfunction), initvals, bounds... );
160 }

References libnest2d::opt::Optimizer< Subclass >::dir_, libnest2d::opt::initvals(), and libnest2d::opt::Optimizer< Subclass >::MIN.

+ Here is the call graph for this function:

Friends And Related Symbol Documentation

◆ Optimizer< DummyOptimizer< T > >

template<class T = void>
friend class Optimizer< DummyOptimizer< T > >
friend

Member Data Documentation

◆ dir_

◆ stopcr_

template<class Subclass >
StopCriteria libnest2d::opt::Optimizer< Subclass >::stopcr_
protectedinherited

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