* Bug 15599 fixed: now degree of zero polynomial is -Inf
[scilab.git] / scilab / modules / ast / includes / operations / matrix_power.h
1 /*
2 *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 *  Copyright (C) 2008-2008 - DIGITEO - Antoine ELIAS
4 *
5  * Copyright (C) 2012 - 2016 - Scilab Enterprises
6  *
7  * This file is hereby licensed under the terms of the GNU GPL v2.0,
8  * pursuant to article 5.3.4 of the CeCILL v.2.1.
9  * This file was originally licensed under the terms of the CeCILL v2.1,
10  * and continues to be available under such terms.
11  * For more information, see the COPYING file which you should have received
12  * along with this program.
13 *
14 */
15
16 #ifndef __MATRIC_POWER_H__
17 #define __MATRIC_POWER_H__
18
19 //Scalar ^ Scalar
20 int iPowerRealScalarByRealScalar(
21     double _dblReal1,
22     double _dblReal2,
23     double* _pdblRealOut, double* _pdblImgOut, int *_piComplex);
24
25 int iPowerRealScalarByComplexScalar(
26     double _dblReal1,
27     double _dblReal2, double _dblImg2,
28     double* _pdblRealOut, double* _pdblImgOut);
29
30 int iPowerComplexScalarByRealScalar(
31     double _dblReal1, double _dblImg1,
32     double _dblReal2,
33     double* _pdblRealOut, double* _pdblImgOut);
34
35 int iPowerComplexScalarByComplexScalar(
36     double _dblReal1, double _dblImg1,
37     double _dblReal2, double _dblImg2, double* _pdblRealOut, double* _pdblImgOut);
38
39 //Scalar ^ Matrix
40 int iPowerRealScalarByRealMatrix(
41     double _dblReal1,
42     double* _pdblReal2, int _iRows2, int _iCols2,
43     double* _pdblRealOut,       double* _pdblImgOut, int *_iComplex);
44
45 int iPowerComplexScalarByRealMatrix(
46     double _dblReal1, double _dblImg1,
47     double* _pdblReal2, int _iRows2, int _iCols2,
48     double* _pdblRealOut,       double* _pdblImgOut);
49
50 int iPowerRealScalarByComplexMatrix(
51     double _dblReal1,
52     double* _pdblReal2, double* _pdblImg2, int _iRows2, int _iCols2,
53     double* _pdblRealOut,       double* _pdblImgOut);
54
55 int iPowerComplexScalarByComplexMatrix(
56     double _dblReal1, double _dblImg1,
57     double* _pdblReal2, double* _pdblImg2, int _iRows2, int _iCols2,
58     double* _pdblRealOut,       double* _pdblImgOut);
59
60 //Square Matrix ^ Scalar
61 int iPowerRealSquareMatrixByRealScalar(
62     double* _pdblReal1, int _iRows1, int _iCols1,
63     double _dblReal2,
64     double* _pdblRealOut,       double* _pdblImgOut, int *_iComplex);
65
66 int iPowerRealSquareMatrixByComplexScalar(
67     double* _pdblReal1, int _iRows1, int _iCols1,
68     double _dblReal2, double _dblImg2,
69     double* _pdblRealOut,       double* _pdblImgOut);
70
71 int iPowerComplexSquareMatrixByRealScalar(
72     double* _pdblReal1, double* _pdblImg1, int _iRows1, int _iCols1,
73     double _dblReal2,
74     double* _pdblRealOut,       double* _pdblImgOut);
75
76 int iPowerComplexSquareMatrixByComplexScalar(
77     double* _pdblReal1, double* _pdblImg1, int _iRows1, int _iCols1,
78     double _dblReal2, double _dblImg2,
79     double* _pdblRealOut,       double* _pdblImgOut);
80
81 //Matrix ^ Matrix
82 int iPowerRealMatrixByRealMatrix(
83     double* _pdblReal1, int _iRows1, int _iCols1,
84     double* _pdblReal2,
85     double* _pdblRealOut,       double* _pdblImgOut);
86
87 int iPowerRealMatrixByComplexMatrix(
88     double* _pdblReal1, int _iRows1, int _iCols1,
89     double* _pdblReal2, double* _pdblImg2,
90     double* _pdblRealOut,       double* _pdblImgOut);
91
92 int iPowerComplexMatrixByRealMatrix(
93     double* _pdblReal1, double* _pdblImg1, int _iRows1, int _iCols1,
94     double* _pdblReal2,
95     double* _pdblRealOut,       double* _pdblImgOut);
96
97 int iPowerComplexMatrixByComplexMatrix(
98     double* _pdblReal1, double* _pdblImg1, int _iRows1, int _iCols1,
99     double* _pdblReal2, double* _pdblImg2,
100     double* _pdblRealOut,       double* _pdblImgOut);
101
102
103
104 #endif /* __MATRIC_POWER_H__ */