FineKernelToolKit  3.1.0
GenVector_CLI.h
[詳解]
1 // GenVector_CLI.h
2 
3 #pragma once
4 
5 #include <FK/GenVector.h>
6 #include "Matrix_CLI.h"
7 
8 namespace FK_CLI {
9  using namespace System;
10  using namespace System::Collections::Generic;
11 
13 
22  public ref class fk_GenVector {
23  internal:
24  ::fk_GenVector *pGVec;
25 
26  public:
27 
28 #ifndef FK_DOXYGEN_USER_PROCESS
29  fk_GenVector(::fk_GenVector *argV);
30 #endif
31 
35  fk_GenVector();
36 
38 
44  fk_GenVector(int deg);
45 
47 
53  fk_GenVector(IEnumerable<double>^ array);
54 
57 
60 
63 
65  ~fk_GenVector();
66 
68  !fk_GenVector();
69 
71 
73 
82  bool Equals(fk_GenVector^ V);
83 
85 
94  virtual bool Equals(Object^ O) override;
95 
97 
99 
106  static fk_GenVector^ operator-(fk_GenVector^ argV);
107 
109 
125  static double operator*(fk_GenVector^ P, fk_GenVector^ Q);
126 
127 
129 
138  static fk_GenVector^ operator+(fk_GenVector^ P, fk_GenVector^ Q);
139 
141 
150  static fk_GenVector^ operator-(fk_GenVector^ P, fk_GenVector^ Q);
151 
153 
161  static fk_GenVector^ operator*(fk_GenVector^ V1, double d);
162 
164 
172  static fk_GenVector^ operator*(double d, fk_GenVector^ V1);
173 
175 
181  static fk_GenVector^ operator/(fk_GenVector^ V1, double d);
182 
184 
203  static fk_GenVector^ operator ^(fk_GenVector^ P, fk_GenVector^ Q);
204 
205  //代入演算子
206 
208 
218  static void operator *=(fk_GenVector^ V, double d);
219 
221 
233  static void operator /=(fk_GenVector^ V, double d);
234 
236 
248  static void operator +=(fk_GenVector^ V1, fk_GenVector^ V2);
249 
251 
263  static void operator -=(fk_GenVector^ V1, fk_GenVector^ V2);
264 
266 
271  property double default[int] {
272  double get(int argID);
273  void set(int argID, double argD);
274  }
275 
277 
283  property int Size {
284  void set(int);
285  int get();
286  }
287 
289 
301  property double Norm {
302  double get();
303  }
304 
306 
318  property double Norm2 {
319  double get();
320  }
321 
323 
328  String^ ToString() override;
329 
331 
346  bool Normalize(void);
347 
349 
356  void Init(bool degFlg);
357 
359 
363  void Init(void);
364 
366 
373  bool IsZero(void);
374 
376 
399  bool Replace(int s, fk_GenVector^ Q);
400 
402 
425  bool Replace(int s, fk_Vector^ Q);
426 
428 
451  bool Replace(int s, fk_HVector^ Q);
452 
454 
477  bool Add(int s, fk_GenVector^ Q);
478 
480 
503  bool Add(int s, fk_Vector^ Q);
504 
506 
529  bool Add(int s, fk_HVector^ Q);
530 
532 
555  bool Sub(int s, fk_GenVector^ Q);
556 
558 
580  bool Sub(int s, fk_Vector^ Q);
581 
583 
606  bool Sub(int s, fk_HVector^ Q);
607 
609 
621  fk_GenVector^ Div(int s, int e);
622  };
623 }
624 
625 
626 /****************************************************************************
627  *
628  * Copyright (c) 1999-2016, Fine Kernel Project, All rights reserved.
629  *
630  * Redistribution and use in source and binary forms,
631  * with or without modification, are permitted provided that the
632  * following conditions are met:
633  *
634  * - Redistributions of source code must retain the above
635  * copyright notice, this list of conditions and the
636  * following disclaimer.
637  *
638  * - Redistributions in binary form must reproduce the above
639  * copyright notice, this list of conditions and the
640  * following disclaimer in the documentation and/or
641  * other materials provided with the distribution.
642  *
643  * - Neither the name of the copyright holders nor the names
644  * of its contributors may be used to endorse or promote
645  * products derived from this software without specific
646  * prior written permission.
647  *
648  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
649  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
650  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
651  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
652  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
653  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
654  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
655  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
656  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
657  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
658  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
659  * POSSIBILITY OF SUCH DAMAGE.
660  *
661  ****************************************************************************/
662 /****************************************************************************
663  *
664  * Copyright (c) 1999-2016, Fine Kernel Project, All rights reserved.
665  *
666  * 本ソフトウェアおよびソースコードのライセンスは、基本的に
667  * 「修正 BSD ライセンス」に従います。以下にその詳細を記します。
668  *
669  * ソースコード形式かバイナリ形式か、変更するかしないかを問わず、
670  * 以下の条件を満たす場合に限り、再頒布および使用が許可されます。
671  *
672  * - ソースコードを再頒布する場合、上記の著作権表示、本条件一覧、
673  * および下記免責条項を含めること。
674  *
675  * - バイナリ形式で再頒布する場合、頒布物に付属のドキュメント等の
676  * 資料に、上記の著作権表示、本条件一覧、および下記免責条項を
677  * 含めること。
678  *
679  * - 書面による特別の許可なしに、本ソフトウェアから派生した製品の
680  * 宣伝または販売促進に、本ソフトウェアの著作権者の名前または
681  * コントリビューターの名前を使用してはならない。
682  *
683  * 本ソフトウェアは、著作権者およびコントリビューターによって「現
684  * 状のまま」提供されており、明示黙示を問わず、商業的な使用可能性、
685  * および特定の目的に対する適合性に関す暗黙の保証も含め、またそれ
686  * に限定されない、いかなる保証もないものとします。著作権者もコン
687  * トリビューターも、事由のいかんを問わず、損害発生の原因いかんを
688  * 問わず、かつ責任の根拠が契約であるか厳格責任であるか(過失その
689  * 他の)不法行為であるかを問わず、仮にそのような損害が発生する可
690  * 能性を知らされていたとしても、本ソフトウェアの使用によって発生
691  * した(代替品または代用サービスの調達、使用の喪失、データの喪失、
692  * 利益の喪失、業務の中断も含め、またそれに限定されない)直接損害、
693  * 間接損害、偶発的な損害、特別損害、懲罰的損害、または結果損害に
694  * ついて、一切責任を負わないものとします。
695  *
696  ****************************************************************************/
4次元ベクトルを管理するクラス
Definition: Vector_CLI.h:446
任意次元ベクトルを管理するクラス
Definition: GenVector_CLI.h:22
3次元ベクトルを管理するクラス
Definition: Vector_CLI.h:37
Definition: AppWindow_CLI.h:11