FineKernelToolKit  3.1.0
GenMatrix_CLI.h
[詳解]
1 // GenMatrix_CLI.h
2 
3 #pragma once
4 
5 #include <FK/GenMatrix.h>
6 #include "GenVector_CLI.h"
7 
8 namespace FK_CLI {
9 
11 
19  public ref class fk_GenMatrix {
20  internal:
21  ::fk_GenMatrix *pGMat;
22  public:
23 
25 
28  fk_GenMatrix();
29 
31 
36  fk_GenMatrix(int deg);
37 
39  ~fk_GenMatrix();
40 
42  !fk_GenMatrix();
43 
45 
51  property double default[int,int] {
52  double get(int, int);
53  void set(int, int, double);
54  }
55 
57 
63  property int Degree {
64  void set(int);
65  int get();
66  }
67 
69 
71 
80  bool Equals(fk_GenMatrix^ M);
81 
83 
92  virtual bool Equals(Object^ O) override;
93 
95 
100  String^ ToString() override;
101 
102  // fk_GenVector との積演算
104 
117 
119 
134 
135  // 差演算子
137 
150 
152 
165 
167 
179  static void operator +=(fk_GenMatrix^ M1, fk_GenMatrix^ M2);
180 
182 
194  static void operator -=(fk_GenMatrix^ M1, fk_GenMatrix^ M2);
195 
197 
214  static void operator *=(fk_GenMatrix^ M1, fk_GenMatrix^ M2);
215 
217 
229  static void operator *=(fk_GenVector^ V, fk_GenMatrix^ M);
230 
232 
240  void Init(bool initFlg);
241 
243 
247  void Init(void);
248 
250 
260  bool Inverse(void);
261 
262 
264 
273  fk_GenMatrix^ GetInverse(void);
274 
276 
281  void Negate(void);
282 
284 
292  bool IsRegular(void);
293 
295 
304  bool IsSingular(void);
305  };
306 }
307 
308 /****************************************************************************
309  *
310  * Copyright (c) 1999-2016, Fine Kernel Project, All rights reserved.
311  *
312  * Redistribution and use in source and binary forms,
313  * with or without modification, are permitted provided that the
314  * following conditions are met:
315  *
316  * - Redistributions of source code must retain the above
317  * copyright notice, this list of conditions and the
318  * following disclaimer.
319  *
320  * - Redistributions in binary form must reproduce the above
321  * copyright notice, this list of conditions and the
322  * following disclaimer in the documentation and/or
323  * other materials provided with the distribution.
324  *
325  * - Neither the name of the copyright holders nor the names
326  * of its contributors may be used to endorse or promote
327  * products derived from this software without specific
328  * prior written permission.
329  *
330  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
331  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
332  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
333  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
334  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
335  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
336  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
337  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
338  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
339  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
340  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
341  * POSSIBILITY OF SUCH DAMAGE.
342  *
343  ****************************************************************************/
344 /****************************************************************************
345  *
346  * Copyright (c) 1999-2016, Fine Kernel Project, All rights reserved.
347  *
348  * 本ソフトウェアおよびソースコードのライセンスは、基本的に
349  * 「修正 BSD ライセンス」に従います。以下にその詳細を記します。
350  *
351  * ソースコード形式かバイナリ形式か、変更するかしないかを問わず、
352  * 以下の条件を満たす場合に限り、再頒布および使用が許可されます。
353  *
354  * - ソースコードを再頒布する場合、上記の著作権表示、本条件一覧、
355  * および下記免責条項を含めること。
356  *
357  * - バイナリ形式で再頒布する場合、頒布物に付属のドキュメント等の
358  * 資料に、上記の著作権表示、本条件一覧、および下記免責条項を
359  * 含めること。
360  *
361  * - 書面による特別の許可なしに、本ソフトウェアから派生した製品の
362  * 宣伝または販売促進に、本ソフトウェアの著作権者の名前または
363  * コントリビューターの名前を使用してはならない。
364  *
365  * 本ソフトウェアは、著作権者およびコントリビューターによって「現
366  * 状のまま」提供されており、明示黙示を問わず、商業的な使用可能性、
367  * および特定の目的に対する適合性に関す暗黙の保証も含め、またそれ
368  * に限定されない、いかなる保証もないものとします。著作権者もコン
369  * トリビューターも、事由のいかんを問わず、損害発生の原因いかんを
370  * 問わず、かつ責任の根拠が契約であるか厳格責任であるか(過失その
371  * 他の)不法行為であるかを問わず、仮にそのような損害が発生する可
372  * 能性を知らされていたとしても、本ソフトウェアの使用によって発生
373  * した(代替品または代用サービスの調達、使用の喪失、データの喪失、
374  * 利益の喪失、業務の中断も含め、またそれに限定されない)直接損害、
375  * 間接損害、偶発的な損害、特別損害、懲罰的損害、または結果損害に
376  * ついて、一切責任を負わないものとします。
377  *
378  ****************************************************************************/
static void operator+=(fk_GenMatrix^ M1, fk_GenMatrix^ M2)
行列和代入演算子
bool IsRegular(void)
正則判定メソッド
static fk_GenVector^ operator*(fk_GenMatrix^ M, fk_GenVector^ V1)
ベクトル変換二項演算子
static void operator-=(fk_GenMatrix^ M1, fk_GenMatrix^ M2)
行列差代入演算子
~fk_GenMatrix()
デストラクタ
任意次元正方行列を管理するクラス
Definition: GenMatrix_CLI.h:19
int Degree
次元数プロパティ
Definition: GenMatrix_CLI.h:63
String^ ToString() override
文字列出力メソッド
static void operator*=(fk_GenMatrix^ M1, fk_GenMatrix^ M2)
行列積代入演算子
任意次元ベクトルを管理するクラス
Definition: GenVector_CLI.h:22
void Init(void)
初期化メソッド2
static fk_GenMatrix^ operator+(fk_GenMatrix^ M1, fk_GenMatrix^ M2)
行列和二項演算子
bool Inverse(void)
逆行列化メソッド
bool IsSingular(void)
特異判定メソッド
static fk_GenMatrix^ operator-(fk_GenMatrix^ M1, fk_GenMatrix^ M2)
行列差二項演算子
bool Equals(fk_GenMatrix^ M)
同値比較メソッド1
fk_GenMatrix()
コンストラクタ1
fk_GenMatrix^ GetInverse(void)
逆行列取得演算子
void Negate(void)
転置化メソッド
Definition: AppWindow_CLI.h:11