1 /*
2  *   Copyright (c) 2012, Michael Lehn
3  *
4  *   All rights reserved.
5  *
6  *   Redistribution and use in source and binary forms, with or without
7  *   modification, are permitted provided that the following conditions
8  *   are met:
9  *
10  *   1) Redistributions of source code must retain the above copyright
11  *      notice, this list of conditions and the following disclaimer.
12  *   2) Redistributions in binary form must reproduce the above copyright
13  *      notice, this list of conditions and the following disclaimer in
14  *      the documentation and/or other materials provided with the
15  *      distribution.
16  *   3) Neither the name of the FLENS development group nor the names of
17  *      its contributors may be used to endorse or promote products derived
18  *      from this software without specific prior written permission.
19  *
20  *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21  *   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22  *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23  *   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24  *   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25  *   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26  *   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27  *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28  *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29  *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30  *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
32 
33 #ifndef CXXLAPACK_INTERFACE_LANV2_TCC
34 #define CXXLAPACK_INTERFACE_LANV2_TCC 1
35 
36 #include <iostream>
37 #include "xflens/cxxlapack/interface/interface.h"
38 #include "xflens/cxxlapack/netlib/netlib.h"
39 
40 namespace cxxlapack {
41 
42 template <typename XFLENS_VOID>
43 void
lanv2(float & a,float & b,float & c,float & d,float & rt1r,float & rt1i,float & rt2r,float & rt2i,float & cs,float & sn)44 lanv2(float    &a,
45       float    &b,
46       float    &c,
47       float    &d,
48       float    &rt1r,
49       float    &rt1i,
50       float    &rt2r,
51       float    &rt2i,
52       float    &cs,
53       float    &sn)
54 {
55     CXXLAPACK_DEBUG_OUT("slanv2");
56 
57     LAPACK_IMPL(slanv2)(&a,
58                         &b,
59                         &c,
60                         &d,
61                         &rt1r,
62                         &rt1i,
63                         &rt2r,
64                         &rt2i,
65                         &cs,
66                         &sn);
67 }
68 
69 template <typename XFLENS_VOID>
70 void
lanv2(double & a,double & b,double & c,double & d,double & rt1r,double & rt1i,double & rt2r,double & rt2i,double & cs,double & sn)71 lanv2(double   &a,
72       double   &b,
73       double   &c,
74       double   &d,
75       double   &rt1r,
76       double   &rt1i,
77       double   &rt2r,
78       double   &rt2i,
79       double   &cs,
80       double   &sn)
81 {
82 
83     CXXLAPACK_DEBUG_OUT("dlanv2");
84 
85     LAPACK_IMPL(dlanv2)(&a,
86                         &b,
87                         &c,
88                         &d,
89                         &rt1r,
90                         &rt1i,
91                         &rt2r,
92                         &rt2i,
93                         &cs,
94                         &sn);
95 }
96 
97 } // namespace cxxlapack
98 
99 #endif // CXXLAPACK_INTERFACE_LANV2_TCC
100