#include "acl/Kernels/aclKernel.h"
#include "acl/aclUtilities.h"
#include "acl/aclMath/aclReductionAlgGenerator.h"
#include "acl/aclGenerators.h"
#include "aslUtilities.h"
#include "acl/aclMath/aclVectorOfElements.h"
{
cout << "testSum..." << flush;
unsigned int n(101);
auto v(generateVEData<float>(n,1u));
initData(v, generateVEConstant(2));
auto summator(generateSumAlg<float>(v));
summator->generateAlg();
summator->compute();
return status;
}
{
cout << "testSum1..." << flush;
unsigned int n(100001);
initData(v1, generateVEConstant(2));
initData(v2, generateVEConstant(3));
auto summator(generateSumAlg<float>(v1*v2));
summator->generateAlg();
summator->compute();
return status;
}
{
cout <<
"testMin..." <<
flush;
auto minimizer(generateMinAlg<float>(v1*((vI-100)*(vI-100)+3)));
minimizer->generateAlg();
minimizer->compute();
return status;
}
{
cout <<
"testMax..." <<
flush;
auto maximizer(generateMaxAlg<float>(v1*((1000.-vI)*(vI-1000.)-10.)));
maximizer->generateAlg();
maximizer->compute();
return status;
}
{
cout <<
"testProduct..." <<
flush;
typedef double FT;
v1,
vI >=1000 && vI <= 1007,
acl::typeToTypeID<FT>())));
alg->generateAlg();
alg->compute();
return status;
}
{
bool allTestsPassed(true);
return allTestsPassed ? EXIT_SUCCESS : EXIT_FAILURE;
}
The class represents several Element.
Element select(Element e1, Element e2, Element e3)
void errorMessage(cl_int status, const char *errorMessage)
Prints errorMessage and exits depending on the status.
void initData(Element a, Element initializationValue, const KernelConfiguration &kernelConfig=KERNEL_BASIC)
VectorOfElements generateVEConstant(T a)
Generates VectorOfElements with 1 Element acl::Constant with value a.
VectorOfElements generateVEIndex(unsigned int size=0)
Advanced Computational Language.
const bool approxEqual(const double &a, const double &b, const double p_=1e-6)
Approximately equal; the precision is defined as p_.