1e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#include <valarray> 2e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 3e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#include "cppunit/cppunit_proxy.h" 4e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 5e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if !defined (STLPORT) || defined(_STLP_USE_NAMESPACES) 6e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottusing namespace std; 7e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif 8e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 9e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott// 10e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott// TestCase class 11e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott// 12e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottclass ValarrayTest : public CPPUNIT_NS::TestCase 13e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott{ 14e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_TEST_SUITE(ValarrayTest); 15e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_TEST(transcendentals); 16e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_TEST_SUITE_END(); 17e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 18e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottprotected: 19e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott void transcendentals(); 20e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott}; 21e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 22e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick ScottCPPUNIT_TEST_SUITE_REGISTRATION(ValarrayTest); 23e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 24e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott// 25e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott// tests implementation 26e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott// 27e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott// For the moment this test is just a complitation test 28e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott// everyone is welcome to do a real good unit test for 29e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott// valarray functionality. 30e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottvoid ValarrayTest::transcendentals() 31e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott{ 32e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#ifdef __SUNPRO_CC 33e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott using std::abs; 34e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif 35e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott { 36e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott valarray<double> darray; 37e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott valarray<double> tmp; 38e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = abs(darray); 39e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = acos(darray); 40e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = asin(darray); 41e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = atan(darray); 42e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = atan2(darray, tmp); 43e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = atan2(1.0, darray); 44e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = atan2(darray, 1.0); 45e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = cos(darray); 46e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = cosh(darray); 47e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = sin(darray); 48e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = sinh(darray); 49e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = tan(darray); 50e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if !defined (STLPORT) || !defined (_STLP_USING_PLATFORM_SDK_COMPILER) || !defined (_M_AMD64) 51e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = tanh(darray); 52e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif 53e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = exp(darray); 54e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = log(darray); 55e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = log10(darray); 56e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = pow(darray, tmp); 57e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = pow(1.0, darray); 58e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = pow(darray, 1.0); 59e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = sqrt(darray); 60e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott } 61e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott { 62e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott valarray<float> farray; 63e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott valarray<float> tmp; 64e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = abs(farray); 65e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = acos(farray); 66e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = asin(farray); 67e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = atan(farray); 68e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = atan2(farray, tmp); 69e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = atan2(1.0f, farray); 70e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = atan2(farray, 1.0f); 71e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = cos(farray); 72e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = cosh(farray); 73e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = sin(farray); 74e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = sinh(farray); 75e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = tan(farray); 76e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if !defined (STLPORT) || !defined (_STLP_USING_PLATFORM_SDK_COMPILER) || !defined (_M_AMD64) 77e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = tanh(farray); 78e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif 79e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = exp(farray); 80e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = log(farray); 81e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = log10(farray); 82e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = pow(farray, tmp); 83e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = pow(1.0f, farray); 84e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = pow(farray, 1.0f); 85e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = sqrt(farray); 86e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott } 87e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if !defined (STLPORT) || !defined (_STLP_NO_LONG_DOUBLE) 88e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott { 89e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott valarray<long double> ldarray; 90e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott valarray<long double> tmp; 91e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = abs(ldarray); 92e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = acos(ldarray); 93e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = asin(ldarray); 94e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = atan(ldarray); 95e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = atan2(ldarray, tmp); 96e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = atan2(1.0l, ldarray); 97e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = atan2(ldarray, 1.0l); 98e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = cos(ldarray); 99e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = cosh(ldarray); 100e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = sin(ldarray); 101e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = sinh(ldarray); 102e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = tan(ldarray); 103e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# if !defined (STLPORT) || !defined (_STLP_USING_PLATFORM_SDK_COMPILER) || !defined (_M_AMD64) 104e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = tanh(ldarray); 105e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# endif 106e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = exp(ldarray); 107e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = log(ldarray); 108e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = log10(ldarray); 109e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = pow(ldarray, tmp); 110e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = pow(1.0l, ldarray); 111e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = pow(ldarray, 1.0l); 112e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott tmp = sqrt(ldarray); 113e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott } 114e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif 115e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott valarray<double> v0(2, 10); 116e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott valarray<double> v1(v0[slice(0, 1, 5)]); 117e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott v0[slice(0, 1, 5)] = 5; 118e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott valarray<double> v2(v0[gslice()]); 119e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott //valarray<double> v3(v0[valarray<bool>()]); 120e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott valarray<double> v4(v0[valarray<size_t>()]); 121e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott} 122