GNU Octave  3.8.0
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
xpow.h
Go to the documentation of this file.
1 /*
2 
3 Copyright (C) 1993-2013 John W. Eaton
4 
5 This file is part of Octave.
6 
7 Octave is free software; you can redistribute it and/or modify it
8 under the terms of the GNU General Public License as published by the
9 Free Software Foundation; either version 3 of the License, or (at your
10 option) any later version.
11 
12 Octave is distributed in the hope that it will be useful, but WITHOUT
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15 for more details.
16 
17 You should have received a copy of the GNU General Public License
18 along with Octave; see the file COPYING. If not, see
19 <http://www.gnu.org/licenses/>.
20 
21 */
22 
23 #if !defined (octave_xpow_h)
24 #define octave_xpow_h 1
25 
26 #include "oct-cmplx.h"
27 
28 class Matrix;
29 class ComplexMatrix;
30 class FloatMatrix;
31 class FloatComplexMatrix;
32 class DiagMatrix;
33 class ComplexDiagMatrix;
34 class FloatDiagMatrix;
36 class PermMatrix;
37 class NDArray;
38 class FloatNDArray;
39 class ComplexNDArray;
41 class octave_value;
42 class Range;
43 
44 extern OCTINTERP_API octave_value xpow (double a, double b);
45 extern OCTINTERP_API octave_value xpow (double a, const Matrix& b);
46 extern OCTINTERP_API octave_value xpow (double a, const Complex& b);
47 extern OCTINTERP_API octave_value xpow (double a, const ComplexMatrix& b);
48 
49 extern OCTINTERP_API octave_value xpow (const Matrix& a, double b);
50 extern OCTINTERP_API octave_value xpow (const Matrix& a, const Complex& b);
51 
52 extern OCTINTERP_API octave_value xpow (const DiagMatrix& a, double b);
53 extern OCTINTERP_API octave_value xpow (const DiagMatrix& a, const Complex& b);
54 
55 extern OCTINTERP_API octave_value xpow (const PermMatrix& a, double b);
56 
57 extern OCTINTERP_API octave_value xpow (const Complex& a, double b);
58 extern OCTINTERP_API octave_value xpow (const Complex& a, const Matrix& b);
59 extern OCTINTERP_API octave_value xpow (const Complex& a, const Complex& b);
60 extern OCTINTERP_API octave_value xpow (const Complex& a,
61  const ComplexMatrix& b);
62 
63 extern OCTINTERP_API octave_value xpow (const ComplexMatrix& a, double b);
65  const Complex& b);
66 
67 extern OCTINTERP_API octave_value xpow (const ComplexDiagMatrix& a, double b);
69  const Complex& b);
70 
71 extern OCTINTERP_API octave_value elem_xpow (double a, const Matrix& b);
72 extern OCTINTERP_API octave_value elem_xpow (double a, const ComplexMatrix& b);
73 extern OCTINTERP_API octave_value elem_xpow (double a, const Range& r);
74 
75 extern OCTINTERP_API octave_value elem_xpow (const Matrix& a, double b);
76 extern OCTINTERP_API octave_value elem_xpow (const Matrix& a, const Matrix& b);
77 extern OCTINTERP_API octave_value elem_xpow (const Matrix& a, const Complex& b);
79  const ComplexMatrix& b);
80 
81 extern OCTINTERP_API octave_value elem_xpow (const Complex& a, const Matrix& b);
83  const ComplexMatrix& b);
84 extern OCTINTERP_API octave_value elem_xpow (const Complex& a, const Range& r);
85 
86 extern OCTINTERP_API octave_value elem_xpow (const ComplexMatrix& a, double b);
88  const Matrix& b);
90  const Complex& b);
92  const ComplexMatrix& b);
93 
94 
95 extern OCTINTERP_API octave_value elem_xpow (double a, const NDArray& b);
96 extern OCTINTERP_API octave_value elem_xpow (double a, const ComplexNDArray& b);
97 
98 extern OCTINTERP_API octave_value elem_xpow (const NDArray& a, double b);
100  const NDArray& b);
102  const Complex& b);
104  const ComplexNDArray& b);
105 
107  const NDArray& b);
109  const ComplexNDArray& b);
110 
112  double b);
114  const NDArray& b);
116  const Complex& b);
118  const ComplexNDArray& b);
119 
120 extern OCTINTERP_API octave_value xpow (float a, float b);
121 extern OCTINTERP_API octave_value xpow (float a, const FloatMatrix& b);
122 extern OCTINTERP_API octave_value xpow (float a, const FloatComplex& b);
123 extern OCTINTERP_API octave_value xpow (float a, const FloatComplexMatrix& b);
124 
125 extern OCTINTERP_API octave_value xpow (const FloatMatrix& a, float b);
126 extern OCTINTERP_API octave_value xpow (const FloatMatrix& a,
127  const FloatComplex& b);
128 
129 extern OCTINTERP_API octave_value xpow (const FloatDiagMatrix& a, float b);
131  const FloatComplex& b);
132 
133 extern OCTINTERP_API octave_value xpow (const FloatComplex& a, float b);
135  const FloatMatrix& b);
137  const FloatComplex& b);
139  const FloatComplexMatrix& b);
140 
141 extern OCTINTERP_API octave_value xpow (const FloatComplexMatrix& a, float b);
143  const FloatComplex& b);
144 
146  float b);
148  const FloatComplex& b);
149 
150 extern OCTINTERP_API octave_value elem_xpow (float a, const FloatMatrix& b);
151 extern OCTINTERP_API octave_value elem_xpow (float a,
152  const FloatComplexMatrix& b);
153 
154 extern OCTINTERP_API octave_value elem_xpow (const FloatMatrix& a, float b);
156  const FloatMatrix& b);
158  const FloatComplex& b);
160  const FloatComplexMatrix& b);
161 
163  const FloatMatrix& b);
165  const FloatComplexMatrix& b);
166 
168  float b);
170  const FloatMatrix& b);
172  const FloatComplex& b);
174  const FloatComplexMatrix& b);
175 
176 
177 extern OCTINTERP_API octave_value elem_xpow (float a, const FloatNDArray& b);
178 extern OCTINTERP_API octave_value elem_xpow (float a,
179  const FloatComplexNDArray& b);
180 
181 extern OCTINTERP_API octave_value elem_xpow (const FloatNDArray& a, float b);
183  const FloatNDArray& b);
185  const FloatComplex& b);
187  const FloatComplexNDArray& b);
188 
190  const FloatNDArray& b);
192  const FloatComplexNDArray& b);
193 
195  float b);
197  const FloatNDArray& b);
199  const FloatComplex& b);
201  const FloatComplexNDArray& b);
202 
203 #endif