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