Mercurial > octave-libgccjit
comparison src/DLD-FUNCTIONS/inv.cc @ 8916:a2878ba31a9e
add diag & perm matrix query methods to octave_value
author | Jaroslav Hajek <highegg@gmail.com> |
---|---|
date | Fri, 06 Mar 2009 12:00:11 +0100 |
parents | c3f7e2549abb |
children | eb63fbe60fab |
comparison
equal
deleted
inserted
replaced
8915:485eabc0cfec | 8916:a2878ba31a9e |
---|---|
89 | 89 |
90 if (arg.is_diag_matrix ()) | 90 if (arg.is_diag_matrix ()) |
91 { | 91 { |
92 rcond = 1.0; | 92 rcond = 1.0; |
93 frcond = 1.0f; | 93 frcond = 1.0f; |
94 const octave_base_value& a = arg.get_rep (); | |
95 if (arg.is_complex_type ()) | 94 if (arg.is_complex_type ()) |
96 { | 95 { |
97 if (isfloat) | 96 if (isfloat) |
98 { | 97 { |
99 CAST_CONV_ARG (const octave_float_complex_diag_matrix&); | 98 result = arg.float_complex_diag_matrix_value ().inverse (info); |
100 result = v.float_complex_diag_matrix_value ().inverse (info); | 99 if (nargout > 1) |
101 if (nargout > 1) | 100 frcond = arg.float_complex_diag_matrix_value ().rcond (); |
102 frcond = v.float_complex_diag_matrix_value ().rcond (); | |
103 } | 101 } |
104 else | 102 else |
105 { | 103 { |
106 CAST_CONV_ARG (const octave_complex_diag_matrix&); | 104 result = arg.complex_diag_matrix_value ().inverse (info); |
107 result = v.complex_diag_matrix_value ().inverse (info); | 105 if (nargout > 1) |
108 if (nargout > 1) | 106 rcond = arg.complex_diag_matrix_value ().rcond (); |
109 rcond = v.complex_diag_matrix_value ().rcond (); | |
110 } | 107 } |
111 } | 108 } |
112 else | 109 else |
113 { | 110 { |
114 if (isfloat) | 111 if (isfloat) |
115 { | 112 { |
116 CAST_CONV_ARG (const octave_float_diag_matrix&); | 113 result = arg.float_diag_matrix_value ().inverse (info); |
117 result = v.float_diag_matrix_value ().inverse (info); | 114 if (nargout > 1) |
118 if (nargout > 1) | 115 frcond = arg.float_diag_matrix_value ().rcond (); |
119 frcond = v.float_diag_matrix_value ().rcond (); | |
120 } | 116 } |
121 else | 117 else |
122 { | 118 { |
123 CAST_CONV_ARG (const octave_diag_matrix&); | 119 result = arg.diag_matrix_value ().inverse (info); |
124 result = v.diag_matrix_value ().inverse (info); | 120 if (nargout > 1) |
125 if (nargout > 1) | 121 rcond = arg.diag_matrix_value ().rcond (); |
126 rcond = v.diag_matrix_value ().rcond (); | |
127 } | 122 } |
128 } | 123 } |
129 } | 124 } |
130 else if (arg.is_perm_matrix ()) | 125 else if (arg.is_perm_matrix ()) |
131 { | 126 { |
132 rcond = 1.0; | 127 rcond = 1.0; |
133 frcond = 1.0f; | 128 frcond = 1.0f; |
134 info = 0; | 129 info = 0; |
135 const octave_base_value& a = arg.get_rep (); | |
136 if (isfloat) | 130 if (isfloat) |
137 { | 131 result = octave_value (arg.perm_matrix_value ().inverse (), true); |
138 CAST_CONV_ARG (const octave_float_perm_matrix&); | |
139 result = v.perm_matrix_value ().inverse (); | |
140 } | |
141 else | 132 else |
142 { | 133 result = arg.perm_matrix_value ().inverse (); |
143 CAST_CONV_ARG (const octave_perm_matrix&); | |
144 result = v.perm_matrix_value ().inverse (); | |
145 } | |
146 } | 134 } |
147 else if (isfloat) | 135 else if (isfloat) |
148 { | 136 { |
149 if (arg.is_real_type ()) | 137 if (arg.is_real_type ()) |
150 { | 138 { |