kangaroo  1.0 the cbls library
Data Structures
Here are the data structures with brief descriptions:
[detail level 12]
 Cabs1 Unary absolute value operator: abs(x) Cacos1 Unary acos operator: acos(x) Cacosh1 Unary acosh operator: acosh(x) Cadd2 Binary addition operator: x + y Cadd2mixed Binary addition operator for mixed data types: int x + float y or vice versa Cadd3 Ternary addition operator: x + y + z Cadd4 Quaternary addition operator: p + q + r + s CAllDifferentSatisfactionValueToValue All different satisfaction value to value function CAllDifferentViolationValueToValue All different violation value to value function CAllDifferentViolationValueToValueMiniFactorVector All different violation value to value factor mini vector function Cand2satisfaction Binary and operator to return two-level satisfaction logically: x && y Cand2violation Binary and operator to return multi-level violation numerically: x && y CAndSatisfactionValueToValue And satisfaction value to value function CAndViolationValueToValue And violation value to value function Casin1 Unary asin operator: asin(x) Casinh1 Unary asinh operator: asinh(x) Catan1 Unary atan operator: atan(x) Catanh1 Unary atanh operator: atanh(x) CAtmostSerialCountXFcMHnT A class to represent at most serial count fcmhns CAtmostValueCountXFcMHnT A class to represent at most value count fcmhns CbetweenClosedClosed3satisfaction Ternary between closed closed operator returning satisfaction logically: a <= x <= b CbetweenClosedClosed3violation Ternary between closed closed operator returning violation numerically: (a <= x <= b) CbetweenClosedOpen3satisfaction Ternary between closed open operator returning satisfaction logically: a <= x < b CbetweenClosedOpen3violation Ternary between closed open operator returning violation numerically: (a <= x < b) CbetweenOpenClosed3satisfaction Ternary between open closed operator returning satisfaction logically: a < x <= b CbetweenOpenClosed3violation Ternary between open closed operator returning violation numerically: (a < x <= b) CbetweenOpenOpen3satisfaction Ternary between open open operator returning satisfaction logically: a < x < b CbetweenOpenOpen3violation Ternary between open open operator returning violation numerically: (a < x < b) CBinaryMixedValueToValue Binary mixed value to value functions CBinaryValueToValue Binary value to value functions Cbind1nothing Bind nothing of a unary operator, just to make it compatible with bindNested Cbind2left Bind the left operand of a binary operator with a constant value and the operator now becomes a unary operator Cbind2right Bind the right operand of a binary operator with a constant value and the operator now becomes a unary operator Cbind3sansMiddle Bind the left and right operands of a ternary operator with constant values, but do not bind the middle operand; the operator now becomes a unary operator CbindLinearPiecesNsansInput Bind the linear pieces of a n-ary linear-pieces function except its input; the operator now becomes a unary operator CbindListItemsNsansIndex Bind the list of items of a indexed list items n-ary operator except its index operand; the operator now becomes a unary operator; CbindNested The nested binding operator f(g(x)) CbindThenElse3sansIf Bind then and else branches but not the if selector of a ternary if-then-else operator; the operator now becomes a unary operator CBindValueToValue Bind value to value functions CCompatibleTwoVarsSingleObjectiveOptimalVarSwapSelector Selecting compatible two variables for swapping optimising a single objective CCompatibleTwoVarsSingleObjectiveOptimalVarSwapSelectorDoubleVarTabu Selecting compatible two variables for swapping optimising a single objective respecting double variable tabu CCompatibleTwoVarsSingleObjectiveOptimalVarSwapSelectorDoubleVarTabuLock Selecting compatible two variables for swapping optimising a single objective respecting double variable tabu and variable locking CCompatibleTwoVarsSingleObjectiveOptimalVarSwapSelectorLock Selecting compatible two variables for swapping optimising a single objective respecting variable locking CCompatibleTwoVarsSingleObjectiveOptimalVarSwapSelectorSingleVarTabu Selecting compatible two variables for swapping optimising a single objective respecting single variable tabu CCompatibleTwoVarsSingleObjectiveOptimalVarSwapSelectorSingleVarTabuLock Selecting compatible two variables for swapping respecting single variable tabu and variable locking CConditionalSummationValueVectorToValueVector Summation value vector to value vector function CConditionalWeightedSummationValueVectorToValueVector Weighted summation value vector to value vector function CConstant Abstract constant expressions Ccos1 Unary cos operator: cos(x) Ccosh1 Unary cosh operator: cosh(x) Ccube1 Unary cube operator: cube(x) CDataTempBuff Compatible temporary buffer type for two given data types CDataTempBuff< Bool, Bool > Temporary buffer type for boolean and boolean CDataTempBuff< Bool, Int > Temporary buffer type for boolean and integer CDataTempBuff< Bool, Real > Temporary buffer type for boolean and real CDataTempBuff< Int, Bool > Temporary buffer type for integer and boolean CDataTempBuff< Int, Int > Temporary buffer type for integer and integer CDataTempBuff< Int, Real > Temporary buffer type for integer and real CDataTempBuff< Real, Bool > Temporary buffer type for real and boolean CDataTempBuff< Real, Int > Temporary buffer type for real and integer CDataTempBuff< Real, Real > Temporary buffer type for real and real CDataTypeLimits Represents min and max data limits CDataTypeLimits< Bool > Min and max data limits and default step size for boolean CDataTypeLimits< Int > Min and max data limits and default step size for integer CDataTypeLimits< Real > Min and max data limits and default step size for real CDataTypeList Unique datatype serial CDataTypeList< 0 > Data type logic CDataTypeList< 1 > Data type integer CDataTypeList< 2 > Data type real CDataTypeMeta Represents data type meta CDataTypeMeta< Bool > Data type boolean CDataTypeMeta< Int > Data type integer CDataTypeMeta< Real > Data type real Cdiff2 Binary difference operator returning absolute difference: abs(x-y) Cdiv2 Binary division operator: x / y ►CDoubleVarTabu Double variable tabu family CDoubleVarTabuDoCallback Double variable tabu with callbacks CDoubleVarTabuDoCallbackCircularQueue Double variable tabu with callbacks, implemented by using circular queue CDoubleVarTabuNoCallback Double variable tabu with no call back CDoubleVarTabuNoCallbackCircularQueue Double variable no callback tabu, implemented by using a circular queue CDynamicAutoRangeVarValue Dynamic automatic range variable having ranges defined by expressions CDynamicUserRangeVarValue Dynamic user controlled range variables havinng ranges given by the user Cequals2satisfaction Equals operator to return two-level satisfaction logically: x == y Cequals2violation Equals operator to return multi-level violation numerically: x == y Cexp1 Unary exp operator: exp(x) CExpression Abstract expressions CFactorVectorRankFunction Factor vector ranking function type CFalseCountComposeValueToValue False count compose value to value function CFalseCountValueToValue False count value to value function CFlipVariable Flip variable types that have binary states ►CFunction Functions that depend on other expressions CgreaterEqual2satisfaction Greater equal operator to return two-level satisfaction logically: x >= y CgreaterEqual2violation Greater equal operator to return multi-level violation numerically: x >= y CgreaterThan2satisfaction Greater than operator to return two-level satisfaction logically: x > y CgreaterThan2violation Greater than operator to return multi-level violation numerically: x > y CHeapOptimalFactorVectorRank Rank factor variables optimally based on the vector metrics and using a heap CHeapOptimalFactorVectorRankLock Ranking factor variables optimally based on vector metrics and using a heap respecting variable locks CHeapOptimalFactorVectorRankOptiSwap Rank factor variables optimally based on the vector metrics with optimisation swap and using a heap CHeapOptimalFactorVectorRankOptiSwapLock Ranking factor variables optimally based on vector metrics with optimisation swap and using a heap respecting variable locks CHeapOptimalFactorVectorRankOptiSwapSingleVarTabuDoCallback Ranking factor variables optimally based on vector metrics with optimisation swap using a heap respecting single variable tabu CHeapOptimalFactorVectorRankOptiSwapSingleVarTabuDoCallbackLock Ranking factor variables optimally based on vector metrics with optimisation swap using a heap respecting single variable tabu and variable locking CHeapOptimalFactorVectorRankSingleVarTabuDoCallback Ranking factor variables optimally based on vector metrics using a heap respecting single variable tabu CHeapOptimalFactorVectorRankSingleVarTabuDoCallbackLock Ranking factor variables optimally based on vector metrics with optimisation swap using a heap respecting single variable tabu and variable locking CHeapOptimalMapVarRank Rank variables optimally based on mapped parameter expressions using heaps CHeapOptimalMapVarRankLock Rank variables optimally based on mapped parameter expressions using heaps and respecting locks CHeapOptimalMapVarRankSingleVarTabuDoCallback Rank variables optimally based on mapped parameter expressions using heaps and respecting single variable tabu CHeapOptimalMapVarRankSingleVarTabuDoCallbackLock Rank variables optimally based on mapped parameter expressions using heaps and respecting single variable tabu and lock CHeapOptimalParamRank Functions ranking parameters based on values using a heap CIdenticalTwoVarsSingleObjectiveOptimalVarSwapSelector Selecting idential two variables for swapping optimising an objective CIdenticalTwoVarsSingleObjectiveOptimalVarSwapSelectorDoubleVarTabu Selecting identical two variables for swapping respecting double variable tabu CIdenticalTwoVarsSingleObjectiveOptimalVarSwapSelectorDoubleVarTabuLock Selecting identical two variables for swapping respecting both double variable tabu and variable locking CIdenticalTwoVarsSingleObjectiveOptimalVarSwapSelectorLock Selecting identical two variables for swapping respecting variable locking CIdenticalTwoVarsSingleObjectiveOptimalVarSwapSelectorSingleVarTabu Selecting identical two variables for swapping respecting single variable tabu CIdenticalTwoVarsSingleObjectiveOptimalVarSwapSelectorSingleVarTabuLock Selecting identical two variables for swapping respecting both single variable tabu and variable locking Cidentifier Unique identifier of a class CifThenElse If then else multiplexing operator: if (p) then q else r CIfThenElseValueToValue If then else value to value function CIfThenValueToValue If then value to value function Cimply2satisfaction Binary imply operator to return two-level satisfaction logically: x -> y Cimply2violation Binary imply operator to return multi-level violation numerically: x -> y CindexedListItem Indexed list item operator: List[index] CItemList Item list to represent collections of systems, functions, variables, constants, and tabus CKaryValueFunc Fixed arity value functions ClessEqual2satisfaction Less equal operator to return two-level satisfaction logically: x <= y ClessEqual2violation Less equal operator to return multi-level violation numerically: x <= y ClessThan2satisfaction Less than operator to return two-level satisfaction logically: x < y ClessThan2violation Less than operator to return multi-level violation numerically: x < y ClinearPiecesLinearSearch Linear pieces with linear search CListItemValueToValue List itemValue value to value function Clog1 Unary log operator: log(x) Clog1ten Unary 10-based log operator: log10(x) Clog1two Unary two-based log operator: log2(x) CLogicalFlipVarValue Logical flip variables that have boolean states CLogicalFlipVarValueSharedVector Logical flip variables having a shared vector for optimisation metrics CMapVarRankFunction Functions ranking variables based on mapped parameter expressions Cmax2 Binary maximum operator: max(x,y) Cmax3 Ternary maximum operator: max(x,y,z) Cmax4 Quaternary maximum operator: max(p, q, r, s) Cmin2 Arithmetical minimum operator: min(x, y) Cmin3 Ternary minimum operator: min(x,y,z) Cmin4 Quaternary minimum operator: min(p, q, r, s) Cmod2 A class to represent the arithmetical mod operator: x % y Cmult2 Binary multiplication operator: x * y Cmult2mixed Binary multiplication operator for mixed data types: int x * float y Cmult3 Ternary multiplication operator: x * y * z Cmult4 Quaternary multiplication operator: p * q * r * s CMuxValueFunc Multiplexing value functions Cnand2satisfaction Binary nand operator to return two-level satisfaction logically: !(x && y) Cnand2violation Binary nand operator to return multi-level violation numerically: !(x && y) CNandSatisfactionValueToValue Nand satisfaction value to value function CNaryValueFactorVectorToValueFactorVectorFunc Flexible arity value vector to value vector function CNaryValueFunc Flexible arity value functions CNaryValueScalarOrFactorVectorToValueFactorVectorFunc Flexible arity value scalar or vector to value vector functions CNaryValueScalarToValueFactorVectorFunc Flexible arity value and scalar to value and vector functions CNaryValueToValueFactorVectorFunc Flexible arity value to value factor vector function Cneg1 Unary negation operator: -x Cnimply2satisfaction Binary not-imply operator to return two-level satisfaction logically: !(x -> y) Cnimply2violation Binary not-imply operator to return multi-level violation numerically: !(x -> y) Cnor2satisfaction Binary nor operator to return two-level satisfaction logically: !(x || y) Cnor2violation Binary nor operator to return multi-level violation numerically: !(x || y) CNorViolationValueToValue Nor violation value to value function Cnot1satisfaction Unary not operator to return two-level satisfaction: !x Cnot1violation Unary not operator to return two-level violation: !x CnotBetweenClosedClosed3satisfaction Ternary not between closed closed operator returning satisfaction logically: !(a <= x <= b) CnotBetweenClosedClosed3violation Ternary not between closed closed operator returning violation numerically: !(a <= x <= b) CnotBetweenClosedOpen3satisfaction Ternary not between closed open operator returning satisfaction logically: !(a <= x < b) CnotBetweenClosedOpen3violation Ternary not between closed open operator returning violation numerically: !(a <= x < b) CnotBetweenOpenClosed3satisfaction Ternary not between open closed operator returning satisfaction logically: !(a < x <= b) CnotBetweenOpenClosed3violation Ternary not between open closed operator returning violation numerically: !(a < x <= b) CnotBetweenOpenOpen3satisfaction Ternary not between open open operator returning satisfaction logically: !(a < x < b) CnotBetweenOpenOpen3violation Ternary not between open open operator returning violation numerically: !(a < x < b) CnotEquals2satisfaction Not-equals operator to return two-level satisfaction logically: x != y CnotEquals2violation Not equals operator to return multi-level violation numerically: x != y CNotIfThenValueToValue Not if then value to value function COptimalSingleFactorVarSelectorFactorVectorRank Select an optimal factor variable using factor vector ranking COptimalSingleMapVarSelectorMapVarRank Select an optimal mapped variable using a mapped variable ranking COptiSwap Optimisation swap operator that is used if maxi and mini are swapped or vice versa Cor2satisfaction Binary or operator to return two-level satisfaction logically: x || y Cor2violation Binary or operator to return multi-level violation numerically: x || y COrderBoundary Represents boundary values in a given order COrderBoundary< AscOrder, Int > Register ascending order data boundaries for integer data COrderBoundary< AscOrder, Real > Register ascending order data boundaries for real data COrderBoundary< DescOrder, Int > Register descending order data boundaries for integer data COrderBoundary< DescOrder, Real > Register descending order data boundaries for real data COrderComparator Represents sorting order binary operators COrderComparator< AscOrder, Bool, Bool > Register ascending order for boolean input boolean output COrderComparator< AscOrder, Bool, Int > Register ascending order for boolean input integer output COrderComparator< AscOrder, Bool, Real > Register ascending order for boolean input real output COrderComparator< AscOrder, Int, Bool > Register ascending order for integer input boolean output COrderComparator< AscOrder, Int, Int > Register ascending order for integer input integer output COrderComparator< AscOrder, Int, Real > Register ascending order for integer input real output COrderComparator< AscOrder, Real, Bool > Register ascending order for real input boolean output COrderComparator< AscOrder, Real, Int > Register ascending order for real input integer output COrderComparator< AscOrder, Real, Real > Register ascending order for real input real output COrderComparator< DescOrder, Bool, Bool > Register descending order for boolean input boolean output COrderComparator< DescOrder, Bool, Int > Register descending order for boolean input integer output COrderComparator< DescOrder, Bool, Real > Register descending order for boolean input real output COrderComparator< DescOrder, Int, Bool > Register descending order for integer input boolean output COrderComparator< DescOrder, Int, Int > Register descending order for integer input integer output COrderComparator< DescOrder, Int, Real > Register descending order for integer input real output COrderComparator< DescOrder, Real, Bool > Register descending order for real input boolean output COrderComparator< DescOrder, Real, Int > Register descending order for real input integer output COrderComparator< DescOrder, Real, Real > Register descending order for real input real output COrSatisfactionValueToValue Or satisfaction value to value function COrViolationValueToValue Or violation value to value function Cpacked2integer Packing 2 integers into one Cpacked3integer Packing 3 integers into one CParamRankFunction Ranking parameters based on values Cpow2 Binary power operator: x ^ y CQuaternaryValueToValue Quaternary value to value functions CRandomSingleFactorVarSelector Randomly select a factor variable CRandomSingleFactorVarSelectorLock Randomly select a factor variable, respecting variable locking CRandomSingleFactorVarSelectorSingleVarTabu Randomly select a factor variable, respecting single variable tabu CRandomSingleFactorVarSelectorSingleVarTabuLock Randomly select a factor variable, respecting single variable tabu and variable locking CRangeVariable Range variables that have domains defined by ranges of values CRegularConstant Regular constant model CRegularConstValue Regular constant value CScalarBase Scalar base is the base class for scalar metrics CScalarRecord Scalar records store expression scalar metrics CSelector Selects variables or values or moves Csin1 Unary sin operator: sin(x) CSingleRangeVarDoubleObjectiveMonteCarloValueSelector Selecting a value for a range variable optimising two objectives using Monte Carlo method CSingleRangeVarDoubleObjectiveOptimalValueSelector Selecting an optimal value for a range variable, optimising two objectives CSingleRangeVarSingleObjectiveMonteCarloValueSelector Selecting a value for a range variable optimising an objective using Monte Carlo method CSingleRangeVarSingleObjectiveOptimalValueSelector Selecting an optimal value for a range variable, optimising an objective ►CSingleVarTabu Single variable tabu family CSingleVarTabuDoCallback Single variable tabu with callbacks CSingleVarTabuDoCallbackCircularQueue Single variable tabu with callbacks implemented by using a circular queue CSingleVarTabuNoCallback Single variable tabu with no callback CSingleVarTabuNoCallbackCircularQueue Single variable tabu with no callback implemented by using a circular queue Csinh1 Unary sinh operator: sinh(x) Csqr1 Unary sqr operator: sqr(x) Csqrt1 Unary sqrt operator: sqrt(x) CStaticRangeVarValue Static range variables having domains defined by static ranges Csub2 Binary subtraction operator: x - y Csub2nonneg Binary subtraction operator returning non-negative result : max(0, x - y) Csub2nonpos Binary subtraction operator returning non-positive result : min(0, x - y) CSummationComposeValueToValue Summation compose value to value function CSummationValueFactorVectorOptiSwapToValueFactorVector Summation value vector optimisation swap to value vector function CSummationValueFactorVectorToValueFactorVector Summation value vector to value vector function CSummationValueScalarOptiSwapToValueFactorVector Summation value scalar optimisation swap to value factor vector CSummationValueScalarOrFactorVectorOptiSwapToValueFactorVector Summation value scalar or factor vector optimisation swap to value factor vector function CSummationValueScalarOrFactorVectorToValueFactorVector Summation value scalar or factor vector to value factor vector function CSummationValueScalarToValueFactorVector Summation value scalar to value factor vector CSummationValueToValue Summation value to value function CSysMode System running modes ►CSystem Constraint-based local search systems CTabuBase Tabu heuristic base class Ctan1 Unary tan operator: tan(x) Ctanh1 Unary tanh operator: tanh(x) CTerminalSummationComposeValueToValue Terminal summation compose value to value function CTerminalSummationValueToValue Terminal-summation value to value function CTernaryValueToValue Ternary value to value functions CTrueCountComposeValueToValue True count compose value to value function CTrueCountValueToValue True count value to value function Ctypecast1 Unary type cast operator to transform from one data type to another CUnaryValueToValue Unary value to value functions CValueFunction Value function that computes values, not metrics CValueRecord Value records store expression values CValueVectorFunction Value vector function model CVariable Abstract variable class CVarLock Variable locking manager ►CVarValueTabu Variable value tabu family CVarValueTabuDoCallback Variable value tabu with callbacks CVarValueTabuDoCallbackCircularQueue Variable value tabu with callbacks, implemented by using circular queue CVarValueTabuNoCallback Variable value tabu with no callback CVarValueTabuNoCallbackCircularQueue Variable value tabue with no callback and implemented by using circular queue CVectorBase Vector base is the base class for vector metrics CVectorField Vector field to store a field of a vector metric CVectorRecord Vector record to store expression vector metrics CWeightedSummationValueFactorVectorOptiSwapToValueFactorVector Weighted summation value vector optimisation swap to value vector CWeightedSummationValueFactorVectorToValueFactorVector Weighted summation value vector to value vector CWeightedSummationValueScalarOptiSwapToValueFactorVector Weighted summation value scalar optimisation swap to value factor vector CWeightedSummationValueScalarOrFactorVectorOptiSwapToValueFactorVector Weighted summation value scalar or factor vector optimisation swap to value factor vector function CWeightedSummationValueScalarOrFactorVectorToValueFactorVector Weighted summation value scalar or factor vector to value factor vector function CWeightedSummationValueScalarToValueFactorVector Weighted summation value scalar to value factor vector CWeightedSummationValueToValue Weighted summation value to value function CWrapper Wrappers for values Cxnor2satisfaction Binary xnor operator to return two-level satisfaction logically: x <-> y Cxnor2violation Binary xnor operator to return multi-level violation numerically: x <-> y CXnorSatisfactionValueToValue Xnor satisfaction value to value function Cxor2satisfaction Binary xor operator to return two-level satisfaction logically: !(x <-> y) Cxor2violation Binary xor operator to return multi-level violation numerically: !(x <-> y) CXorSatisfactionValueToValue Xor satisfaction value to value function