Free cookie consent management tool by TermsFeed Policy Generator

source: branches/HeuristicLab.Problems.GaussianProcessTuning/ILNumerics.2.14.4735.573/Native/lapack/ILACML4_1.cs @ 10903

Last change on this file since 10903 was 9102, checked in by gkronber, 12 years ago

#1967: ILNumerics source for experimentation

File size: 37.6 KB
Line 
1///
2///    This file is part of ILNumerics Community Edition.
3///
4///    ILNumerics Community Edition - high performance computing for applications.
5///    Copyright (C) 2006 - 2012 Haymo Kutschbach, http://ilnumerics.net
6///
7///    ILNumerics Community Edition is free software: you can redistribute it and/or modify
8///    it under the terms of the GNU General Public License version 3 as published by
9///    the Free Software Foundation.
10///
11///    ILNumerics Community Edition is distributed in the hope that it will be useful,
12///    but WITHOUT ANY WARRANTY; without even the implied warranty of
13///    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14///    GNU General Public License for more details.
15///
16///    You should have received a copy of the GNU General Public License
17///    along with ILNumerics Community Edition. See the file License.txt in the root
18///    of your distribution package. If not, see <http://www.gnu.org/licenses/>.
19///
20///    In addition this software uses the following components and/or licenses:
21///
22///    =================================================================================
23///    The Open Toolkit Library License
24///   
25///    Copyright (c) 2006 - 2009 the Open Toolkit library.
26///   
27///    Permission is hereby granted, free of charge, to any person obtaining a copy
28///    of this software and associated documentation files (the "Software"), to deal
29///    in the Software without restriction, including without limitation the rights to
30///    use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
31///    the Software, and to permit persons to whom the Software is furnished to do
32///    so, subject to the following conditions:
33///
34///    The above copyright notice and this permission notice shall be included in all
35///    copies or substantial portions of the Software.
36///
37///    =================================================================================
38///   
39
40#pragma warning disable 1591
41
42using System;
43using System.Runtime.InteropServices;
44using ILNumerics.Storage;
45using ILNumerics.Misc;
46using ILNumerics;
47using System.Security;
48
49namespace ILNumerics.Native {
50   
51  /// <summary>
52  /// LAPACK implementation for AMD processors
53  /// </summary>
54    /// <remarks>By using this module, you will have to make sure,
55    /// you placed all runtime binaries for AMD's performance library
56    /// into the binary output dir accessable for ILNumerics assemblies.
57    /// Those modules must be donwloaded seperately, since it is not
58    /// permitted to distribute them among with LGPL code. However,
59    /// developing and redistributing of products with ACML is possible though.
60    /// AMD currently does not charge money for a redistributable
61    /// license, given that one signs a license agreement with AMD
62    /// individually.</remarks>
63    public class ILACML4_1 : IILLapack {
64
65        #region constructor
66        public ILACML4_1 () {}
67        #endregion
68
69        #region DLL IMPORTS
70        ////////////////////////////////////  DOUBLE LAPACK //////////////////
71        [DllImport("libacml_dll", EntryPoint = "dgemm"),SuppressUnmanagedCodeSecurity]
72    private static extern void acml_dgemm(char TransA, char TransB, int M, int N, int K, double alpha, IntPtr A, int lda, IntPtr B, int ldb, double beta, double[] C, int ldc);
73        [DllImport("libacml_dll", EntryPoint = "sgemm"),SuppressUnmanagedCodeSecurity]
74    private static extern void acml_sgemm(char TransA, char TransB, int M,  int N, int K, float alpha, IntPtr A, int lda, IntPtr B, int ldb, float beta, float[] C, int ldc);
75        [DllImport("lapack_gen", EntryPoint = "cgemm"),SuppressUnmanagedCodeSecurity]
76    private static extern void acml_cgemm(ref char TransA, ref char TransB, ref int M, ref int N, ref int K, ref fcomplex alpha, IntPtr A, ref int lda, IntPtr B, ref int ldb, ref fcomplex beta, [In, Out] fcomplex[] C, ref int ldc);
77        [DllImport("lapack_gen", EntryPoint = "zgemm"),SuppressUnmanagedCodeSecurity]
78    private static extern void acml_zgemm(ref char TransA, ref char TransB, ref int M, ref int N, ref int K, ref complex alpha, IntPtr A, ref int lda, IntPtr B, ref int ldb, ref complex beta, [In, Out] complex[] C, ref int ldc);
79
80        [DllImport("libacml_dll", EntryPoint = "dgesdd",CallingConvention = CallingConvention.StdCall)]
81    private static extern void acml_dgesdd(char jobz, int m, int n, double[] a, int lda, double[] s, double[] u, int ldu, double[] vt, int ldvt, ref int info);
82        [DllImport("libacml_dll", EntryPoint = "sgesdd"),SuppressUnmanagedCodeSecurity]
83    private static extern void acml_sgesdd(char jobz, int m, int n, float[] a, int lda, float[] s,  float[] u, int ldu, float[] vt, int ldvt, ref int info);
84        [DllImport("libacml_dll", EntryPoint = "cgesdd"),SuppressUnmanagedCodeSecurity]
85    private static extern void acml_cgesdd(char jobz, int m, int n, [In,Out] fcomplex[] a, int lda, float[] s, [In,Out] fcomplex[] u, int ldu, [In,Out] fcomplex[] vt, int ldvt, ref int info);
86        [DllImport("libacml_dll", EntryPoint = "zgesdd"),SuppressUnmanagedCodeSecurity]
87    private static extern void acml_zgesdd(char jobz, int m, int n, [In,Out] complex[] a, int lda, double[] s, [In,Out] complex[] u, int ldu, [In,Out] complex[] vt, int ldvt, ref int info);
88
89        [DllImport("libacml_dll", EntryPoint = "dgesvd"),SuppressUnmanagedCodeSecurity]
90    private static extern void acml_dgesvd(char jobu, char jobvt, int m, int n,  double[] a, int lda, double[] s, double[] u, int ldu, double[] vt, int ldvt, ref int info);
91        [DllImport("libacml_dll", EntryPoint = "sgesvd"),SuppressUnmanagedCodeSecurity]
92    private static extern void acml_sgesvd(char jobu, char jobvt, int m, int n, float[] a, int lda, float[] s, float[] u, int ldu, float[] vt, int ldvt, ref int info);
93        [DllImport("libacml_dll", EntryPoint = "cgesvd"),SuppressUnmanagedCodeSecurity]
94    private static extern void acml_cgesvd(char jobu, char jobvt, int m, int n, [In,Out] fcomplex[] a, int lda, float[] s, [In,Out] fcomplex[] u, int ldu, [In,Out] fcomplex[] vt,  int ldvt, ref int info);
95        [DllImport("libacml_dll", EntryPoint = "zgesvd"),SuppressUnmanagedCodeSecurity]
96    private static extern void acml_zgesvd(char jobu, char jobvt, int m, int n, [In,Out] complex[] a, int lda, double[] s, [In,Out] complex[] u, int ldu, [In,Out] complex[] vt, int ldvt,  ref int info);
97           
98        [DllImport("libacml_dll", EntryPoint = "dpotrf"),SuppressUnmanagedCodeSecurity]
99        private static extern void acml_dpotrf (char uplo, int n, double [] A, int lda, ref int info);
100        [DllImport("libacml_dll", EntryPoint = "spotrf"),SuppressUnmanagedCodeSecurity]
101        private static extern void acml_spotrf (char uplo, int n, float [] A, int lda, ref int info);
102        [DllImport("libacml_dll", EntryPoint = "cpotrf"),SuppressUnmanagedCodeSecurity]
103        private static extern void acml_cpotrf (char uplo, int n, [In,Out] fcomplex [] A, int lda, ref int info);
104        [DllImport("libacml_dll", EntryPoint = "zpotrf"),SuppressUnmanagedCodeSecurity]
105        private static extern void acml_zpotrf (char uplo, int n, [In,Out] complex [] A, int lda, ref int info);
106       
107        [DllImport("libacml_dll", EntryPoint = "dpotri"),SuppressUnmanagedCodeSecurity]
108        private static extern void acml_dpotri (char uplo, int n, double [] A, int lda,ref int info);
109        [DllImport("libacml_dll", EntryPoint = "spotri"),SuppressUnmanagedCodeSecurity]
110        private static extern void acml_spotri (char uplo, int n, float [] A, int lda,ref int info);
111        [DllImport("libacml_dll", EntryPoint = "cpotri"),SuppressUnmanagedCodeSecurity]
112        private static extern void acml_cpotri (char uplo, int n, [In,Out] fcomplex [] A, int lda,ref int info);
113        [DllImport("libacml_dll", EntryPoint = "zpotri"),SuppressUnmanagedCodeSecurity]
114        private static extern void acml_zpotri (char uplo, int n, [In,Out] complex [] A, int lda,ref int info);
115
116        [DllImport("libacml_dll", EntryPoint = "dpotrs"),SuppressUnmanagedCodeSecurity]
117        private static extern void acml_dpotrs (char uplo, int n, int nrhs, double[] A, int lda, double[] B, int ldb, ref int info);
118        [DllImport("libacml_dll", EntryPoint = "spotrs"),SuppressUnmanagedCodeSecurity]
119        private static extern void acml_spotrs (char uplo, int n, int nrhs, float[] A, int lda, float[] B, int ldb, ref int info);
120        [DllImport("libacml_dll", EntryPoint = "cpotrs"),SuppressUnmanagedCodeSecurity]
121        private static extern void acml_cpotrs (char uplo, int n, int nrhs, [In,Out] fcomplex[] A, int lda, [In,Out] fcomplex[] B, int ldb, ref int info);
122        [DllImport("libacml_dll", EntryPoint = "zpotrs"),SuppressUnmanagedCodeSecurity]
123        private static extern void acml_zpotrs (char uplo, int n, int nrhs, [In,Out] complex[] A, int lda, [In,Out] complex[] B, int ldb, ref int info);
124
125        [DllImport("libacml_dll", EntryPoint = "dgetrf"),SuppressUnmanagedCodeSecurity]
126        private static extern void acml_dgetrf (int M, int N, double [] A, int LDA, int [] IPIV, ref int info);
127        [DllImport("libacml_dll", EntryPoint = "sgetrf"),SuppressUnmanagedCodeSecurity]
128        private static extern void acml_sgetrf (int M, int N, float [] A, int LDA, int [] IPIV, ref int info);
129        [DllImport("libacml_dll", EntryPoint = "cgetrf"),SuppressUnmanagedCodeSecurity]
130        private static extern void acml_cgetrf (int M, int N, [In,Out] fcomplex [] A, int LDA, int [] IPIV, ref int info);
131        [DllImport("libacml_dll", EntryPoint = "zgetrf"),SuppressUnmanagedCodeSecurity]
132        private static extern void acml_zgetrf (int M, int N, [In,Out] complex [] A, int LDA, int [] IPIV, ref int info);
133
134        [DllImport("libacml_dll", EntryPoint = "dgetri"),SuppressUnmanagedCodeSecurity]
135        private static extern void acml_dgetri (int N, double [] A, int LDA, int [] IPIV, ref int info);
136        [DllImport("libacml_dll", EntryPoint = "sgetri"),SuppressUnmanagedCodeSecurity]
137        private static extern void acml_sgetri (int N, float [] A, int LDA, int [] IPIV, ref int info);
138        [DllImport("libacml_dll", EntryPoint = "cgetri"),SuppressUnmanagedCodeSecurity]
139        private static extern void acml_cgetri (int N, [In,Out] fcomplex [] A, int LDA, int [] IPIV, ref int info);
140        [DllImport("libacml_dll", EntryPoint = "zgetri"),SuppressUnmanagedCodeSecurity]
141        private static extern void acml_zgetri (int N, [In,Out] complex [] A, int LDA, int [] IPIV, ref int info);
142
143        [DllImport("libacml_dll", EntryPoint = "dgeqp3"),SuppressUnmanagedCodeSecurity]
144        private static extern void acml_dgeqp3 (int M, int N, double [] A, int lda, int [] JPVT, double [] tau, ref int info);
145        [DllImport("libacml_dll", EntryPoint = "sgeqp3"),SuppressUnmanagedCodeSecurity]
146        private static extern void acml_sgeqp3 (int M, int N, float [] A, int lda, int [] JPVT, float [] tau, ref int info);
147        [DllImport("libacml_dll", EntryPoint = "cgeqp3"),SuppressUnmanagedCodeSecurity]
148        private static extern void acml_cgeqp3 (int M, int N, [In,Out] fcomplex [] A, int lda, int [] JPVT, [In,Out] fcomplex [] tau, ref int info);
149        [DllImport("libacml_dll", EntryPoint = "zgeqp3"),SuppressUnmanagedCodeSecurity]
150        private static extern void acml_zgeqp3 (int M, int N, [In,Out] complex [] A, int lda, int [] JPVT, [In,Out] complex [] tau, ref int info);
151       
152        [DllImport("libacml_dll", EntryPoint = "dgeqrf"),SuppressUnmanagedCodeSecurity]
153        private static extern void acml_dgeqrf (int M, int N, double [] A, int lda, double [] tau, ref int info);
154        [DllImport("libacml_dll", EntryPoint = "sgeqrf"),SuppressUnmanagedCodeSecurity]
155        private static extern void acml_sgeqrf (int M, int N, float [] A, int lda, float [] tau, ref int info);
156        [DllImport("libacml_dll", EntryPoint = "cgeqrf"),SuppressUnmanagedCodeSecurity]
157        private static extern void acml_cgeqrf (int M, int N, [In,Out] fcomplex [] A, int lda, [In,Out] fcomplex[] tau, ref int info);
158        [DllImport("libacml_dll", EntryPoint = "zgeqrf"),SuppressUnmanagedCodeSecurity]
159        private static extern void acml_zgeqrf (int M, int N, [In,Out] complex [] A, int lda, [In,Out] complex[] tau, ref int info);
160
161        [DllImport("libacml_dll", EntryPoint = "dormqr"),SuppressUnmanagedCodeSecurity]
162        private static extern void acml_dormqr (char side, char trans, int m, int n, int k, double [] A, int lda, double [] tau , double [] C, int ldc, ref int info);
163        [DllImport("libacml_dll", EntryPoint = "sormqr"),SuppressUnmanagedCodeSecurity]
164        private static extern void acml_sormqr (char side, char trans, int m, int n, int k, float [] A, int lda, float [] tau ,  float [] C, int ldc, ref int info);
165       
166        [DllImport("libacml_dll", EntryPoint = "dorgqr"),SuppressUnmanagedCodeSecurity]
167        private static extern void acml_dorgqr (int M, int N, int K, double [] A, int lda, double [] tau, ref int info);
168        [DllImport("libacml_dll", EntryPoint = "sorgqr"),SuppressUnmanagedCodeSecurity]
169        private static extern void acml_sorgqr (int M, int N, int K, float [] A, int lda, float [] tau, ref int info);
170        [DllImport("libacml_dll", EntryPoint = "cungqr"),SuppressUnmanagedCodeSecurity]
171        private static extern void acml_cungqr (int M, int N, int K, [In,Out] fcomplex [] A, int lda, [In,Out] fcomplex [] tau, ref int info);
172        [DllImport("libacml_dll", EntryPoint = "zungqr"),SuppressUnmanagedCodeSecurity]
173        private static extern void acml_zungqr (int M, int N, int K, [In,Out] complex  [] A, int lda, [In,Out] complex [] tau, ref int info);
174       
175        [DllImport("libacml_dll", EntryPoint = "dtrtrs"),SuppressUnmanagedCodeSecurity]
176        private static extern void acml_dtrtrs (char uplo, char transA, char diag, int N, int nrhs, IntPtr A, int LDA, IntPtr B, int LDB, ref int info);
177        [DllImport("libacml_dll", EntryPoint = "strtrs"),SuppressUnmanagedCodeSecurity]
178        private static extern void acml_strtrs (char uplo, char transA, char diag, int N, int nrhs, IntPtr A, int LDA, IntPtr B, int LDB, ref int info);
179        [DllImport("libacml_dll", EntryPoint = "ctrtrs"),SuppressUnmanagedCodeSecurity]
180        private static extern void acml_ctrtrs (char uplo, char transA, char diag, int N, int nrhs, IntPtr A, int LDA, IntPtr B, int LDB, ref int info);
181        [DllImport("libacml_dll", EntryPoint = "ztrtrs"),SuppressUnmanagedCodeSecurity]
182        private static extern void acml_ztrtrs (char uplo, char transA, char diag, int N, int nrhs, IntPtr A, int LDA, IntPtr B, int LDB, ref int info);
183       
184        [DllImport("libacml_dll", EntryPoint = "dgetrs"),SuppressUnmanagedCodeSecurity]
185        private static extern void acml_dgetrs (char trans, int N, int NRHS, double [] A, int LDA, int [] IPIV, double [] B, int LDB, ref int info);
186        [DllImport("libacml_dll", EntryPoint = "sgetrs"),SuppressUnmanagedCodeSecurity]
187        private static extern void acml_sgetrs (char trans, int N, int NRHS, float [] A, int LDA, int [] IPIV, float [] B, int LDB, ref int info);
188        [DllImport("libacml_dll", EntryPoint = "cgetrs"),SuppressUnmanagedCodeSecurity]
189        private static extern void acml_cgetrs (char trans, int N, int NRHS, [In,Out] fcomplex [] A, int LDA, int [] IPIV, [In,Out] fcomplex [] B, int LDB, ref int info);
190        [DllImport("libacml_dll", EntryPoint = "zgetrs"),SuppressUnmanagedCodeSecurity]
191        private static extern void acml_zgetrs (char trans, int N, int NRHS, [In,Out] complex [] A, int LDA, int [] IPIV, [In,Out] complex [] B, int LDB, ref int info);
192       
193        [DllImport("libacml_dll", EntryPoint = "dgelsd"),SuppressUnmanagedCodeSecurity]
194        private static extern void acml_dgelsd (int m, int n, int nrhs, double[] A, int lda, double[] B, int ldb, double[] S, double RCond, ref int rank, ref int info);
195        [DllImport("libacml_dll", EntryPoint = "sgelsd"),SuppressUnmanagedCodeSecurity]
196        private static extern void acml_sgelsd (int m, int n, int nrhs, float[] A, int lda, float[] B, int ldb, float[] S, float RCond, ref int rank, ref int info);
197        [DllImport("libacml_dll", EntryPoint = "cgelsd"),SuppressUnmanagedCodeSecurity]
198        private static extern void acml_cgelsd (int m, int n, int nrhs, [In,Out] fcomplex[] A, int lda, [In,Out] fcomplex[] B, int ldb, float[] S, float RCond, ref int rank, ref int info);
199        [DllImport("libacml_dll", EntryPoint = "zgelsd"),SuppressUnmanagedCodeSecurity]
200        private static extern void acml_zgelsd (int m, int n, int nrhs, [In,Out] complex[] A, int lda,[In,Out] complex[] B, int ldb, double[] S, double RCond, ref int rank, ref int info); 
201       
202        [DllImport("libacml_dll", EntryPoint = "dgelsy"),SuppressUnmanagedCodeSecurity]
203        private static extern void acml_dgelsy (int m, int n, int nrhs, double[] A, int lda, double[] B, int ldb, int[] IPOV0, double RCond, ref int rank, ref int info);
204        [DllImport("libacml_dll", EntryPoint = "sgelsy"),SuppressUnmanagedCodeSecurity]
205        private static extern void acml_sgelsy (int m, int n, int nrhs, float[] A, int lda, float[] B, int ldb, int[] IPOV0, float RCond, ref int rank, ref int info);
206        [DllImport("libacml_dll", EntryPoint = "cgelsy"),SuppressUnmanagedCodeSecurity]
207        private static extern void acml_cgelsy (int m, int n, int nrhs, [In,Out] fcomplex[] A, int lda, [In,Out] fcomplex[] B, int ldb, int[] IPOV0, float RCond, ref int rank, ref int info);
208        [DllImport("libacml_dll", EntryPoint = "zgelsy"),SuppressUnmanagedCodeSecurity]
209        private static extern void acml_zgelsy (int m, int n, int nrhs, [In,Out] complex[] A, int lda,[In,Out] complex[] B, int ldb, int[] IPOV0, double RCond, ref int rank, ref int info); 
210       
211        [DllImport("libacml_dll", EntryPoint = "dgeevx"),SuppressUnmanagedCodeSecurity]
212        private static extern void acml_dgeevx (char balance, char jobvl, char jobvr, char sense, int n, double[] A, int lda, double[] wr, double[] wi, double[] vl, int ldvl, double[] vr, int ldvr, ref int ilo, ref int ihi, double[] scale, ref double abnrm, double[] rconde, double[] rcondv, ref int info);
213        [DllImport("libacml_dll", EntryPoint = "sgeevx"),SuppressUnmanagedCodeSecurity]
214        private static extern void acml_sgeevx (char balance, char jobvl, char jobvr, char sense, int n, float[] A, int lda, float[] wr, float[] wi, float[] vl, int ldvl, float[] vr, int ldvr, ref int ilo, ref int ihi, float[] scale, ref float abnrm, float[] rconde, float[] rcondv, ref int info);
215        [DllImport("libacml_dll", EntryPoint = "cgeevx"),SuppressUnmanagedCodeSecurity]
216        private static extern void acml_cgeevx (char balance, char jobvl, char jobvr, char sense, int n,[In,Out] fcomplex[] A, int lda, [In,Out] fcomplex[] w, [In,Out] fcomplex[] vl, int ldvl, [In,Out] fcomplex[] vr, int ldvr, ref int ilo, ref int ihi, float[] scale, ref float abnrm, float[] rconde, float[] rcondv, ref int info);
217        [DllImport("libacml_dll", EntryPoint = "zgeevx"),SuppressUnmanagedCodeSecurity]
218        private static extern void acml_zgeevx (char balance, char jobvl, char jobvr, char sense, int n, [In,Out] complex[] A, int lda, [In,Out] complex[] w, [In,Out] complex[] vl, int ldvl, [In,Out] complex[] vr, int ldvr, ref int ilo, ref int ihi, double[] scale, ref double abnrm, double[] rconde, double[] rcondv, ref int info);
219
220        [DllImport("libacml_dll", EntryPoint = "dsyevr"),SuppressUnmanagedCodeSecurity]
221        private static extern void acml_dsyevr (char jobz, char range, char uplo, int n, double  [] A, int lda, double vl, double vu, int il, int iu, double abstol, ref int m, double[] w, double  [] z, int ldz, int[] isuppz, ref int info);
222        [DllImport("libacml_dll", EntryPoint = "ssyevr"),SuppressUnmanagedCodeSecurity]
223        private static extern void acml_ssyevr (char jobz, char range, char uplo, int n, float   [] A, int lda, float  vl, float  vu, int il, int iu, float  abstol, ref int m, float [] w, float   [] z, int ldz, int[] isuppz, ref int info);
224        [DllImport("libacml_dll", EntryPoint = "cheevr"),SuppressUnmanagedCodeSecurity]
225        private static extern void acml_cheevr (char jobz, char range, char uplo, int n, [In,Out] fcomplex[] A, int lda, float  vl, float  vu, int il, int iu, float  abstol, ref int m, float [] w, [In,Out] fcomplex[] z, int ldz, int[] isuppz, ref int info);
226        [DllImport("libacml_dll", EntryPoint = "zheevr"),SuppressUnmanagedCodeSecurity]
227        private static extern void acml_zheevr (char jobz, char range, char uplo, int n, [In,Out] complex [] A, int lda, double vl, double vu, int il, int iu, double abstol, ref int m, double[] w, [In,Out] complex [] z, int ldz, int[] isuppz, ref int info);
228
229        [DllImport("libacml_dll", EntryPoint = "dsygv"),SuppressUnmanagedCodeSecurity]
230        private static extern void acml_dsygv (int itype, char jobz, char uplo, int n, double  [] A, int lda, double  [] B, int ldb, double [] w, ref int info);
231        [DllImport("libacml_dll", EntryPoint = "ssygv"),SuppressUnmanagedCodeSecurity]
232        private static extern void acml_ssygv (int itype, char jobz, char uplo, int n, float   [] A, int lda, float  [] B, int ldb, float [] w, ref int info);
233        [DllImport("libacml_dll", EntryPoint = "chegv"),SuppressUnmanagedCodeSecurity]
234        private static extern void acml_chegv (int itype, char jobz, char uplo, int n, [In,Out] fcomplex[] A, int lda, [In,Out] fcomplex [] B, int ldb, float  [] w, ref int info);
235        [DllImport("libacml_dll", EntryPoint = "zhegv"),SuppressUnmanagedCodeSecurity]
236        private static extern void acml_zhegv (int itype, char jobz, char uplo, int n, [In,Out] complex [] A, int lda, [In,Out] complex  [] B, int ldb, double [] w, ref int info);
237
238
239#endregion DLL_IMPORTS
240
241        #region IILLapack_INTERFACE
242        public void dgemm(char TransA, char TransB, int M, int N, int K, double alpha, IntPtr A, int lda, IntPtr B, int ldb, double beta, double[] C, int ldc) {
243            acml_dgemm(TransA, TransB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
244        }
245        public void sgemm(char TransA, char TransB, int M, int N, int K, float alpha, IntPtr A, int lda, IntPtr B, int ldb, float beta, float[] C, int ldc) {
246            acml_sgemm(TransA, TransB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
247        }
248        public void zgemm(char TransA, char TransB, int M, int N, int K, complex alpha, IntPtr A, int lda, IntPtr B, int ldb, complex beta, complex[] C, int ldc) {
249            acml_zgemm(ref TransA, ref TransB, ref M, ref N, ref K, ref alpha, A, ref lda, B, ref ldb, ref beta, C, ref ldc);
250        }
251        public void cgemm(char TransA, char TransB, int M, int N, int K, fcomplex alpha, IntPtr A, int lda, IntPtr B, int ldb, fcomplex beta, fcomplex [] C, int ldc) {
252            acml_cgemm(ref TransA, ref TransB, ref M, ref N, ref K, ref alpha, A, ref lda, B, ref ldb, ref beta, C, ref ldc);
253        }
254
255
256        public void dgesdd(char jobz, int m, int n, double[] a, int lda, double[] s, double[] u, int ldu, double[] vt, int ldvt, ref int info) {
257            acml_dgesdd(jobz, m, n, a, lda, s, u, ldu, vt, ldvt, ref info);
258        }
259        public void sgesdd(char jobz, int m, int n, float[] a, int lda, float[] s, float[] u, int ldu, float[] vt, int ldvt, ref int info) {
260            acml_sgesdd(jobz, m, n, a, lda, s, u, ldu, vt, ldvt, ref info);
261        }
262        public void zgesdd(char jobz, int m, int n, complex[] a, int lda, double[] s, complex[] u, int ldu, complex[] vt, int ldvt, ref int info) {
263            acml_zgesdd(jobz, m, n, a, lda, s, u, ldu, vt, ldvt, ref info);
264        }
265        public void cgesdd(char jobz, int m, int n, fcomplex[] a, int lda, float[] s, fcomplex[] u, int ldu, fcomplex[] vt, int ldvt, ref int info) {
266            acml_cgesdd(jobz, m, n, a, lda, s, u, ldu, vt, ldvt, ref info);
267        }
268
269        public void dgesvd(char jobz, int m, int n, double[] a, int lda, double[] s, double[] u, int ldu, double[] vt, int ldvt, ref int info) {
270            acml_dgesvd(jobz, jobz, m, n, a, lda, s, u, ldu, vt, ldvt, ref info);
271        }
272        public void sgesvd(char jobz, int m, int n, float[] a, int lda, float[] s, float[] u, int ldu, float[] vt, int ldvt, ref int info) {
273            acml_sgesvd(jobz, jobz, m, n, a, lda, s, u, ldu, vt, ldvt, ref info);
274        }
275        public void zgesvd(char jobz, int m, int n, complex[] a, int lda, double[] s, complex[] u, int ldu, complex[] vt, int ldvt, ref int info) {
276            acml_zgesvd(jobz, jobz, m, n, a, lda, s, u, ldu, vt, ldvt, ref info);
277        }
278        public void cgesvd(char jobz, int m, int n, fcomplex[] a, int lda, float[] s, fcomplex[] u, int ldu, fcomplex[] vt, int ldvt, ref int info) {
279            acml_cgesvd(jobz, jobz, m, n, a, lda, s, u, ldu, vt, ldvt, ref info);
280        }
281
282        public void dpotrf(char uplo, int n, double[] A, int lda, ref int info) {
283            acml_dpotrf(uplo,n, A, lda, ref info);
284        }
285        public void spotrf(char uplo, int n, float[] A, int lda, ref int info) {
286            acml_spotrf(uplo,n, A, lda, ref info);
287        }
288        public void cpotrf(char uplo, int n, fcomplex[] A, int lda, ref int info) {
289            acml_cpotrf(uplo,n, A, lda, ref info);
290        }
291        public void zpotrf(char uplo, int n, complex[] A, int lda, ref int info) {
292            acml_zpotrf(uplo,n, A, lda, ref info);
293        }
294
295        public void dpotri(char uplo, int n, double[] A, int lda, ref int info) {
296            acml_dpotri(uplo,n, A, lda, ref info);
297        }
298        public void spotri(char uplo, int n, float[] A, int lda, ref int info) {
299            acml_spotri(uplo,n,A, lda, ref info);
300        }
301        public void cpotri(char uplo, int n, fcomplex[] A, int lda, ref int info) {
302            acml_cpotri(uplo,n, A, lda, ref info);
303        }
304        public void zpotri(char uplo, int n, complex[] A, int lda, ref int info) {
305            acml_zpotri(uplo,n, A, lda, ref info);
306        }
307
308        public void dgetrf(int M, int N, double[] A, int LDA, int[] IPIV, ref int info) {
309            acml_dgetrf(M, N,  A, LDA, IPIV, ref info);
310        }
311        public void sgetrf(int M, int N, float[] A, int LDA, int[] IPIV, ref int info) {
312            acml_sgetrf(M, N,  A, LDA, IPIV, ref info);
313        }
314
315        public void cgetrf(int M, int N, fcomplex[] A, int LDA, int[] IPIV, ref int info) {
316            acml_cgetrf(M, N,  A, LDA, IPIV, ref info);
317        }
318        public void zgetrf(int M, int N, complex[] A, int LDA, int[] IPIV, ref int info) {
319            acml_zgetrf(M, N,  A, LDA,  IPIV, ref info);
320        }
321
322        public void dgetri(int N, double[] A, int LDA, int[] IPIV, ref int info) {
323            acml_dgetri(N, A, LDA, IPIV, ref info);
324        }
325        public void sgetri(int N, float[] A, int LDA, int[] IPIV, ref int info) {
326            acml_sgetri(N, A, LDA, IPIV, ref info);
327        }
328
329        public void cgetri(int N, fcomplex[] A, int LDA, int[] IPIV, ref int info) {
330            acml_cgetri(N, A, LDA, IPIV, ref info);
331        }
332        public void zgetri(int N, complex[] A, int LDA, int[] IPIV, ref int info) {
333            acml_zgetri(N, A, LDA, IPIV, ref info);
334        }
335
336        public void dgeqrf(int M, int N, double[] A, int lda, double [] tau, ref int info) {
337            acml_dgeqrf(M, N, A, lda, tau, ref info);
338        }
339        public void sgeqrf(int M, int N, float[] A, int lda, float [] tau, ref int info) {
340            acml_sgeqrf(M, N, A, lda, tau, ref info);
341        }
342        public void cgeqrf(int M, int N, fcomplex[] A, int lda, fcomplex [] tau, ref int info) {
343            acml_cgeqrf(M, N, A, lda, tau, ref info);
344        }
345        public void zgeqrf(int M, int N, complex[] A, int lda, complex [] tau, ref int info) {
346            acml_zgeqrf(M, N, A, lda, tau, ref info);
347        }
348
349        public void dormqr(char side, char trans, int m, int n, int k, double [] A, int lda, double [] tau, double [] C, int ldc, ref int info) {
350            acml_dormqr(side, trans, m,n,k, A, lda, tau, C,ldc, ref info);
351        }
352        public void sormqr(char side, char trans, int m, int n, int k, float [] A, int lda, float [] tau, float [] C, int ldc, ref int info) {
353            acml_sormqr(side, trans, m,n,k, A, lda, tau, C,ldc, ref info);
354        }
355
356        public void dorgqr(int M, int N, int K, double[] A, int lda, double[] tau, ref int info) {
357            acml_dorgqr(M,N,K,A,lda,tau,ref info);
358        }
359        public void sorgqr(int M, int N, int K, float[] A, int lda, float[] tau, ref int info) {
360            acml_sorgqr(M,N,K,A,lda,tau,ref info);
361        }
362        public void cungqr(int M, int N, int K, fcomplex[] A, int lda, fcomplex[] tau, ref int info) {
363            acml_cungqr(M,N,K,A,lda,tau,ref info);
364        }
365        public void zungqr(int M, int N, int K, complex[] A, int lda, complex[] tau, ref int info) {
366            acml_zungqr(M,N,K,A,lda,tau,ref info);
367        }
368
369        public void dgeqp3 ( int M,int N,double [] A,int LDA,int [] JPVT,double [] tau,ref int info ) {
370            acml_dgeqp3(M,N,A,LDA,JPVT,tau,ref info);
371        }
372
373        public void sgeqp3 ( int M,int N,float [] A,int LDA,int [] JPVT,float [] tau,ref int info ) {
374            acml_sgeqp3(M,N,A,LDA,JPVT,tau,ref info);
375        }
376
377        public void cgeqp3 ( int M,int N,fcomplex [] A,int LDA,int [] JPVT,fcomplex [] tau,ref int info ) {
378            acml_cgeqp3(M,N,A,LDA,JPVT,tau,ref info);
379        }
380
381        public void zgeqp3 ( int M,int N,complex [] A,int LDA,int [] JPVT,complex [] tau,ref int info ) {
382            acml_zgeqp3(M,N,A,LDA,JPVT,tau,ref info);
383        }
384
385        public void dtrtrs(char uplo, char transA, char diag, int N, int nrhs, IntPtr A, int LDA, IntPtr B, int LDB, ref int info) {
386            acml_dtrtrs (uplo, transA, diag, N, nrhs, A, LDA, B, LDB, ref info);
387        }
388        public void strtrs(char uplo, char transA, char diag, int N, int nrhs, IntPtr A, int LDA, IntPtr B, int LDB, ref int info) {
389            acml_strtrs (uplo, transA, diag, N, nrhs, A, LDA, B, LDB, ref info);
390        }
391        public void ctrtrs(char uplo, char transA, char diag, int N, int nrhs, IntPtr A, int LDA, IntPtr B, int LDB, ref int info) {
392            acml_ctrtrs (uplo, transA, diag, N, nrhs, A, LDA, B, LDB, ref info);
393        }
394        public void ztrtrs(char uplo, char transA, char diag, int N, int nrhs, IntPtr A, int LDA, IntPtr B, int LDB, ref int info) {
395            acml_ztrtrs (uplo, transA, diag, N, nrhs, A, LDA, B, LDB, ref info);
396        }
397
398        public void dgetrs(char trans, int N, int NRHS, double[] A, int LDA, int[] IPIV, double[] B, int LDB, ref int info) {
399            acml_dgetrs(trans,N,NRHS,A,LDA,IPIV,B,LDB,ref info);
400        }
401
402        public void sgetrs(char trans, int N, int NRHS, float[] A, int LDA, int[] IPIV, float[] B, int LDB, ref int info) {
403            acml_sgetrs(trans,N,NRHS,A,LDA,IPIV,B,LDB,ref info);
404        }
405
406        public void cgetrs(char trans, int N, int NRHS, fcomplex[] A, int LDA, int[] IPIV, fcomplex[] B, int LDB, ref int info) {
407            acml_cgetrs(trans,N,NRHS,A,LDA,IPIV,B,LDB,ref info);
408        }
409
410        public void zgetrs(char trans, int N, int NRHS, complex[] A, int LDA, int[] IPIV, complex[] B, int LDB, ref int info) {
411            acml_zgetrs(trans,N,NRHS,A,LDA,IPIV,B,LDB,ref info);
412        }
413
414        public void dpotrs(char uplo, int n, int nrhs, double[] A, int lda, double[] B, int ldb, ref int info) {
415            acml_dpotrs(uplo,n,nrhs,A,lda,B,ldb,ref info);
416        }
417        public void spotrs(char uplo, int n, int nrhs, float[] A, int lda, float[] B, int ldb, ref int info) {
418            acml_spotrs(uplo,n,nrhs,A,lda,B,ldb,ref info);
419        }
420        public void cpotrs(char uplo, int n, int nrhs, fcomplex[] A, int lda, fcomplex[] B, int ldb, ref int info) {
421            acml_cpotrs(uplo,n,nrhs,A,lda,B,ldb,ref info);
422        }
423        public void zpotrs(char uplo, int n, int nrhs, complex[] A, int lda, complex[] B, int ldb, ref int info) {
424            acml_zpotrs(uplo,n,nrhs,A,lda,B,ldb,ref info);
425        }
426 
427        public void dgelsd(int m, int n, int nrhs, double[] A, int lda, double[] B, int ldb, double[] S, double RCond, ref int rank, ref int info) {
428            dgelsd (m, n, nrhs, A, lda, B, ldb, S, RCond, ref rank, ref info);
429        }
430        public void sgelsd(int m, int n, int nrhs, float[] A, int lda, float[] B, int ldb, float[] S, float RCond, ref int rank, ref int info) {
431            sgelsd (m, n, nrhs, A, lda, B, ldb, S, RCond, ref rank, ref info);
432        }
433        public void cgelsd(int m, int n, int nrhs, fcomplex[] A, int lda, fcomplex[] B, int ldb, float[] S, float RCond, ref int rank, ref int info) {
434            cgelsd (m, n, nrhs, A, lda, B, ldb, S, RCond, ref rank, ref info);
435        }
436        public void zgelsd(int m, int n, int nrhs, complex[] A, int lda, complex[] B, int ldb, double[] S, double RCond, ref int rank, ref int info) {
437            zgelsd (m, n, nrhs, A, lda, B, ldb, S, RCond, ref rank, ref info);
438        }
439
440        public void dgelsy(int m, int n, int nrhs, double[] A, int lda, double[] B, int ldb, int[] JPVT0, double RCond, ref int rank, ref int info) {
441            acml_dgelsy(m,n,nrhs,A,lda,B,ldb,JPVT0,RCond,ref rank,ref info);
442        }
443        public void sgelsy(int m, int n, int nrhs, float[] A, int lda, float[] B, int ldb, int[] JPVT0, float RCond, ref int rank, ref int info) {
444            acml_sgelsy(m,n,nrhs,A,lda,B,ldb,JPVT0,RCond,ref rank,ref info);
445        }
446        public void cgelsy(int m, int n, int nrhs, fcomplex[] A, int lda, fcomplex[] B, int ldb, int[] JPVT0, float RCond, ref int rank, ref int info) {
447            acml_cgelsy(m,n,nrhs,A,lda,B,ldb,JPVT0,RCond,ref rank,ref info);
448        }
449        public void zgelsy(int m, int n, int nrhs, complex[] A, int lda, complex[] B, int ldb, int[] JPVT0, double RCond, ref int rank, ref int info) {
450            acml_zgelsy(m,n,nrhs,A,lda,B,ldb,JPVT0,RCond,ref rank,ref info);
451        }
452
453        public void dgeevx(char balance, char jobvl, char jobvr, char sense, int n, double[] A, int lda, double[] wr, double[] wi, double[] vl, int ldvl, double[] vr, int ldvr, ref int ilo, ref int ihi, double[] scale, ref double abnrm, double[] rconde, double[] rcondv, ref int info) {
454            acml_dgeevx(balance,jobvl,jobvr,sense,n,A,lda,wr,wi,vl,ldvl,vr,ldvr,ref ilo,ref ihi,scale,ref abnrm,rconde,rcondv,ref info);
455        }
456
457        public void sgeevx(char balance, char jobvl, char jobvr, char sense, int n, float[] A, int lda, float[] wr, float[] wi, float[] vl, int ldvl, float[] vr, int ldvr, ref int ilo, ref int ihi, float[] scale, ref float abnrm, float[] rconde, float[] rcondv, ref int info) {
458            acml_sgeevx(balance,jobvl,jobvr,sense,n,A,lda,wr,wi,vl,ldvl,vr,ldvr,ref ilo,ref ihi,scale,ref abnrm,rconde,rcondv,ref info);
459        }
460
461        public void cgeevx(char balance, char jobvl, char jobvr, char sense, int n, fcomplex[] A, int lda, fcomplex[] w, fcomplex[] vl, int ldvl, fcomplex[] vr, int ldvr, ref int ilo, ref int ihi, float[] scale, ref float abnrm, float[] rconde, float[] rcondv, ref int info) {
462            acml_cgeevx(balance,jobvl,jobvr,sense,n,A,lda,w,vl,ldvl,vr,ldvr,ref ilo,ref ihi,scale,ref abnrm,rconde,rcondv,ref info);
463        }
464
465        public void zgeevx(char balance, char jobvl, char jobvr, char sense, int n, complex[] A, int lda, complex[] w, complex[] vl, int ldvl, complex[] vr, int ldvr, ref int ilo, ref int ihi, double[] scale, ref double abnrm, double[] rconde, double[] rcondv, ref int info) {
466            acml_zgeevx(balance,jobvl,jobvr,sense,n,A,lda,w,vl,ldvl,vr,ldvr,ref ilo,ref ihi,scale,ref abnrm,rconde,rcondv,ref info);
467        }
468
469        public void dsyevr(char jobz, char range, char uplo, int n, double[] A, int lda, double vl, double vu, int il, int iu, double abstol, ref int m, double[] w, double[] z, int ldz, int[] isuppz, ref int info) {
470            acml_dsyevr(jobz,range,uplo,n,A,lda,vl,vu,il,iu,abstol,ref m,w,z,ldz,isuppz,ref info);
471        }
472
473        public void ssyevr(char jobz, char range, char uplo, int n, float[] A, int lda, float vl, float vu, int il, int iu, float abstol, ref int m, float[] w, float[] z, int ldz, int[] isuppz, ref int info) {
474            acml_ssyevr(jobz,range,uplo,n,A,lda,vl,vu,il,iu,abstol,ref m,w,z,ldz,isuppz,ref info);
475        }
476
477        public void cheevr(char jobz, char range, char uplo, int n, fcomplex[] A, int lda, float vl, float vu, int il, int iu, float abstol, ref int m, float[] w, fcomplex[] z, int ldz, int[] isuppz, ref int info) {
478            acml_cheevr(jobz,range,uplo,n,A,lda,vl,vu,il,iu,abstol,ref m,w,z,ldz,isuppz,ref info);
479        }
480
481        public void zheevr(char jobz, char range, char uplo, int n, complex[] A, int lda, double vl, double vu, int il, int iu, double abstol, ref int m, double[] w, complex[] z, int ldz, int[] isuppz, ref int info) {
482            acml_zheevr(jobz,range,uplo,n,A,lda,vl,vu,il,iu,abstol,ref m,w,z,ldz,isuppz,ref info);
483        }
484
485        // generalized eigenproblem: symmetric
486        public void dsygv (int itype, char jobz, char uplo, int n, double  [] A, int lda, double  [] B, int ldb, double [] w, ref int info) {
487            acml_dsygv (itype, jobz, uplo, n, A, lda, B, ldb, w, ref info);
488        }       
489        public void ssygv (int itype, char jobz, char uplo, int n, float   [] A, int lda, float   [] B, int ldb, float  [] w, ref int info) {
490            acml_ssygv (itype, jobz, uplo, n, A, lda, B, ldb, w, ref info);
491        }
492        public void chegv (int itype, char jobz, char uplo, int n, fcomplex[] A, int lda, fcomplex[] B, int ldb, float  [] w, ref int info) {
493            acml_chegv (itype, jobz, uplo, n, A, lda, B, ldb, w, ref info);
494        }
495        public void zhegv (int itype, char jobz, char uplo, int n, complex [] A, int lda, complex [] B, int ldb, double [] w, ref int info) {
496            acml_zhegv (itype, jobz, uplo, n, A, lda, B, ldb, w, ref info);
497        }
498
499        #endregion
500    }
501}
Note: See TracBrowser for help on using the repository browser.