本文整理汇总了C++中Number::AssignAdditiveIdentity方法的典型用法代码示例。如果您正苦于以下问题:C++ Number::AssignAdditiveIdentity方法的具体用法?C++ Number::AssignAdditiveIdentity怎么用?C++ Number::AssignAdditiveIdentity使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Number
的用法示例。
在下文中一共展示了Number::AssignAdditiveIdentity方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: CreateNumber
//=========================================================================================
/*virtual*/ Evaluator* Environment::CreateBinaryOperator( const char* operatorName, Evaluator* leftOperand, Evaluator* rightOperand, bool& isBinaryOperationEvaluator )
{
// Here we implement exponentiation in terms of Tayler series.
// This works for any type of number, because the Tyler series
// function only uses the arithmetic operations of the number interface.
// We re-write x^y as exp(y*ln x). The Tayler series are centered at zero.
// If the user does not want it centered at zero, they must call the
// Tyler series functions themselves. Environment derivatives, of course,
// can override this function to give the "^" operator a different meaning.
if( 0 == strcmp( operatorName, "^" ) )
{
Number* zero = CreateNumber();
zero->AssignAdditiveIdentity( *this );
FunctionArgumentEvaluator* argumentEvaluator = new FunctionArgumentEvaluator();
argumentEvaluator->Argument( leftOperand );
TaylorSeriesFunctionEvaluator* lnEvaluator = new TaylorSeriesFunctionEvaluator();
lnEvaluator->Center( zero, *this );
lnEvaluator->TaylorSeries( TaylorSeriesFunctionEvaluator::TAYLOR_SERIES_LN );
lnEvaluator->AddArgument( argumentEvaluator, FunctionEvaluator::APPEND_TO_LIST_OF_ARGS );
BinaryArithmeticOperationEvaluator* mulEvaluator = new BinaryArithmeticOperationEvaluator( BinaryArithmeticOperationEvaluator::ARITHMETIC_OPERATION_MULTIPLY );
mulEvaluator->LeftOperand( rightOperand );
mulEvaluator->RightOperand( lnEvaluator );
argumentEvaluator = new FunctionArgumentEvaluator();
argumentEvaluator->Argument( mulEvaluator );
TaylorSeriesFunctionEvaluator* expEvaluator = new TaylorSeriesFunctionEvaluator();
expEvaluator->Center( zero, *this );
expEvaluator->TaylorSeries( TaylorSeriesFunctionEvaluator::TAYLOR_SERIES_EXP );
expEvaluator->AddArgument( argumentEvaluator, FunctionEvaluator::APPEND_TO_LIST_OF_ARGS );
// We're not actually returning a binary operation evaluator.
isBinaryOperationEvaluator = false;
delete zero;
return expEvaluator;
}
return 0;
}
示例2:
//=========================================================================================
/*virtual*/ bool EnvironmentInformationFunctionEvaluator::EvaluateResult( Number& result, Environment& environment )
{
result.AssignAdditiveIdentity( environment );
environment.PrintEnvironmentInfo();
return true;
}