Added MACS source
[htsworkflow.git] / htswanalysis / MACS / lib / gsl / gsl-1.11 / cblas / test_rotmg.c
1 #include <gsl/gsl_test.h>
2 #include <gsl/gsl_ieee_utils.h>
3 #include <gsl/gsl_math.h>
4 #include <gsl/gsl_cblas.h>
5
6 #include "tests.h"
7
8 void
9 test_rotmg (void) {
10 const double flteps = 1e-4, dbleps = 1e-6;
11   {
12    float d1 = -1630.28519312f;
13    float d2 = 44320.1964703f;
14    float b1 = 1274.7681352f;
15    float b2 = 0.983006912864f;
16    float h[] = { -999.0f, -999.1f, -999.2f, -999.3f, -999.4f };
17    float d1_expected = 0.0f;
18    float d2_expected = 0.0f;
19    float b1_expected = 0.0f;
20    float h0_expected = -1.0f;
21    float h11_expected = 0.0f;
22    float h21_expected = 0.0f;
23    float h12_expected = 0.0f;
24    float h22_expected = 0.0f;
25    cblas_srotmg(&d1, &d2, &b1, b2, h);
26    gsl_test_rel(d1, d1_expected, flteps, "srotmg(case 606)");
27    gsl_test_rel(d2, d2_expected, flteps, "srotmg(case 607)");
28    gsl_test_rel(b1, b1_expected, flteps, "srotmg(case 608)");
29    gsl_test_rel(h[0], h0_expected, flteps, "srotmg(case 609)");
30    gsl_test_rel(h[1], h11_expected, flteps, "srotmg(case 610)");
31    gsl_test_rel(h[2], h21_expected, flteps, "srotmg(case 611)");
32    gsl_test_rel(h[3], h12_expected, flteps, "srotmg(case 612)");
33    gsl_test_rel(h[4], h22_expected, flteps, "srotmg(case 613)");
34   };
35
36
37   {
38    double d1 = 0.0890831089656;
39    double d2 = 24998.3892082;
40    double b1 = 34657.8864443;
41    double b2 = 1.27708980357;
42    double h[] = { -999.0, -999.1, -999.2, -999.3, -999.4 };
43    double d1_expected = 0.0890491788526;
44    double d2_expected = 24988.8677829;
45    double b1_expected = 34671.0920237;
46    double h0_expected = 0;
47    double h11_expected = -999.1;
48    double h21_expected = -3.6848461767e-05;
49    double h12_expected = 10.34036867;
50    double h22_expected = -999.4;
51    cblas_drotmg(&d1, &d2, &b1, b2, h);
52    gsl_test_rel(d1, d1_expected, dbleps, "drotmg(case 614)");
53    gsl_test_rel(d2, d2_expected, dbleps, "drotmg(case 615)");
54    gsl_test_rel(b1, b1_expected, dbleps, "drotmg(case 616)");
55    gsl_test_rel(h[0], h0_expected, dbleps, "drotmg(case 617)");
56    gsl_test_rel(h[1], h11_expected, dbleps, "drotmg(case 618)");
57    gsl_test_rel(h[2], h21_expected, dbleps, "drotmg(case 619)");
58    gsl_test_rel(h[3], h12_expected, dbleps, "drotmg(case 620)");
59    gsl_test_rel(h[4], h22_expected, dbleps, "drotmg(case 621)");
60   };
61
62
63   {
64    float d1 = 0.00100326116366f;
65    float d2 = -1.20359225232f;
66    float b1 = -7.45489498808f;
67    float b2 = 0.159616854019f;
68    float h[] = { -999.0f, -999.1f, -999.2f, -999.3f, -999.4f };
69    float d1_expected = 0.00222932574734f;
70    float d2_expected = -2.67447728926f;
71    float b1_expected = -3.35491869218f;
72    float h0_expected = 0.0f;
73    float h11_expected = -999.1f;
74    float h21_expected = 0.0214110130692f;
75    float h12_expected = 25.6863620142f;
76    float h22_expected = -999.4f;
77    cblas_srotmg(&d1, &d2, &b1, b2, h);
78    gsl_test_rel(d1, d1_expected, flteps, "srotmg(case 622)");
79    gsl_test_rel(d2, d2_expected, flteps, "srotmg(case 623)");
80    gsl_test_rel(b1, b1_expected, flteps, "srotmg(case 624)");
81    gsl_test_rel(h[0], h0_expected, flteps, "srotmg(case 625)");
82    gsl_test_rel(h[1], h11_expected, flteps, "srotmg(case 626)");
83    gsl_test_rel(h[2], h21_expected, flteps, "srotmg(case 627)");
84    gsl_test_rel(h[3], h12_expected, flteps, "srotmg(case 628)");
85    gsl_test_rel(h[4], h22_expected, flteps, "srotmg(case 629)");
86   };
87
88
89   {
90    double d1 = -49.1978123005;
91    double d2 = 0.228703451277;
92    double b1 = 1.8901039144;
93    double b2 = 7081.47754386;
94    double h[] = { -999.0, -999.1, -999.2, -999.3, -999.4 };
95    double d1_expected = 0;
96    double d2_expected = 0;
97    double b1_expected = 0;
98    double h0_expected = -1;
99    double h11_expected = 0;
100    double h21_expected = 0;
101    double h12_expected = 0;
102    double h22_expected = 0;
103    cblas_drotmg(&d1, &d2, &b1, b2, h);
104    gsl_test_rel(d1, d1_expected, dbleps, "drotmg(case 630)");
105    gsl_test_rel(d2, d2_expected, dbleps, "drotmg(case 631)");
106    gsl_test_rel(b1, b1_expected, dbleps, "drotmg(case 632)");
107    gsl_test_rel(h[0], h0_expected, dbleps, "drotmg(case 633)");
108    gsl_test_rel(h[1], h11_expected, dbleps, "drotmg(case 634)");
109    gsl_test_rel(h[2], h21_expected, dbleps, "drotmg(case 635)");
110    gsl_test_rel(h[3], h12_expected, dbleps, "drotmg(case 636)");
111    gsl_test_rel(h[4], h22_expected, dbleps, "drotmg(case 637)");
112   };
113
114
115   {
116    float d1 = 0.00760694276009f;
117    float d2 = -1.07649167228f;
118    float b1 = -22584.0076391f;
119    float b2 = -0.00305597817159f;
120    float h[] = { -999.0f, -999.1f, -999.2f, -999.3f, -999.4f };
121    float d1_expected = 0.00760694276011f;
122    float d2_expected = -1.07649167228f;
123    float b1_expected = -22584.007639f;
124    float h0_expected = 0.0f;
125    float h11_expected = -999.1f;
126    float h21_expected = -1.35316026298e-07f;
127    float h12_expected = -1.91491615001e-05f;
128    float h22_expected = -999.4f;
129    cblas_srotmg(&d1, &d2, &b1, b2, h);
130    gsl_test_rel(d1, d1_expected, flteps, "srotmg(case 638)");
131    gsl_test_rel(d2, d2_expected, flteps, "srotmg(case 639)");
132    gsl_test_rel(b1, b1_expected, flteps, "srotmg(case 640)");
133    gsl_test_rel(h[0], h0_expected, flteps, "srotmg(case 641)");
134    gsl_test_rel(h[1], h11_expected, flteps, "srotmg(case 642)");
135    gsl_test_rel(h[2], h21_expected, flteps, "srotmg(case 643)");
136    gsl_test_rel(h[3], h12_expected, flteps, "srotmg(case 644)");
137    gsl_test_rel(h[4], h22_expected, flteps, "srotmg(case 645)");
138   };
139
140
141   {
142    double d1 = 0.000283076346391;
143    double d2 = 20.1907649901;
144    double b1 = -0.274927034914;
145    double b2 = 18.6645358259;
146    double h[] = { -999.0, -999.1, -999.2, -999.3, -999.4 };
147    double d1_expected = 20.1907649287;
148    double d2_expected = 0.00028307634553;
149    double b1_expected = 18.6645358827;
150    double h0_expected = 1;
151    double h11_expected = -2.06514743478e-07;
152    double h21_expected = -999.2;
153    double h12_expected = -999.3;
154    double h22_expected = -0.0147299154652;
155    cblas_drotmg(&d1, &d2, &b1, b2, h);
156    gsl_test_rel(d1, d1_expected, dbleps, "drotmg(case 646)");
157    gsl_test_rel(d2, d2_expected, dbleps, "drotmg(case 647)");
158    gsl_test_rel(b1, b1_expected, dbleps, "drotmg(case 648)");
159    gsl_test_rel(h[0], h0_expected, dbleps, "drotmg(case 649)");
160    gsl_test_rel(h[1], h11_expected, dbleps, "drotmg(case 650)");
161    gsl_test_rel(h[2], h21_expected, dbleps, "drotmg(case 651)");
162    gsl_test_rel(h[3], h12_expected, dbleps, "drotmg(case 652)");
163    gsl_test_rel(h[4], h22_expected, dbleps, "drotmg(case 653)");
164   };
165
166
167 }