The SDL Component Suite is an industry leading collection of components supporting scientific and engineering computing. Please visit the SDL Web site for more information....



Interface of SDL_Vector

const
{$IFDEF PAIDVERS}
  SDLVersionInfo = 'vector_r900_full';
  IsLightEd = false;
{$ELSE}
  SDLVersionInfo = 'vector_r900_lighted';
  IsLightEd = true;
{$ENDIF}
  Release = 900;

type
  ESDLVectorError = class(ESDLError);      { exception type to indicate errors }
  TIntVector = class;
  TVector = class (TComponent)
              private
                FNElem         : longint;                 { number of elements }
                FIsEmpty       : boolean;
                FVec           : array of double; { pointer to vector elements }
                FOnChange      : TNotifyEvent;
                FOnSortExchange: TSortExchgEvent;
                function    GetVal (Elem: longint): double;
                procedure   SetVal (Elem: longint; Value: double);
                function    CalcVecLeng: double;
                procedure   SetVecLeng (Value: double);
                procedure   SetVecSize (sz: longint);
                procedure   SkewKurtIntern (LowElem, HighElem: integer;
                                var Skewness, Kurtosis: double;
                                var NumData: longint);
              protected
                procedure   SortExchange (ExchgWhat: byte; index1, index2,
                                first, last: longint);
              public
                constructor Create (AOwner: TComponent); override;
                destructor  Destroy; override;
                procedure   Add (OtherVec: TVector);
                procedure   Clear;
                procedure   Changed;
                procedure   Clone (VecSource: TVector);
                procedure   CopyFrom (VecSource: TVector;
                               SourceElemLo, SourceElemHi,
                               DestElem: integer);
                function    Correlate (OtherVec: TVector; ElemShift: integer): double;
                function    DotProduct (OtherVec: TVector): double;
                procedure   Fill (value: double);
                function    GeometricMean (LowElem, HighElem: integer): double;
                function    HarmonicMean (LowElem, HighElem: integer): double;
                function    Histogram (FirstElem, LastElem: longint;
                               FirstBin, LastBin, BinWidth: double;
                               Histo: TIntVector; var Underflow,
                               Overflow, MaxCnt: longint): boolean;
                property    Leng: double read CalcVecLeng write SetVecLeng;
                function    LoadFromFile (FileName: string;
                               AdjustVectorSize: boolean): boolean;
                procedure   MeanVar (LowElem, HighElem: integer;
                               var Mean, Variance: double);
                procedure   MinMax (LowElem, HighElem: integer;
                               var Minimum, Maximum: double);
                function    Percentile (prob: double; LowElem,
                               HighElem: integer): double;
                function    Quartiles (LowElem, HighElem: integer;
                               var Q1, Q2, Q3: double): boolean;
                function    Resize (NE: longint): boolean;
                function    StoreOnFile (FirstElem, LastElem, Precision: integer;
                                FileName:string): boolean;
                procedure   SkewKurt (LowElem, HighElem: integer;
                               var Skewness, Kurtosis: double);
                procedure   SkewKurtSample (LowElem, HighElem: integer;
                               var Skewness, Kurtosis: double);
                procedure   ShuffleElems;
                procedure   SMult (scalar: double);
                procedure   SortElems (Ascending: boolean; RangeFirst,
                               RangeLast: integer);
                procedure   Subtract (OtherVec: TVector);
                function    Sum (LowElem, HighElem: integer): double;
                property    IsEmpty: boolean read FIsEmpty write FIsEmpty;
                property    Elem[ix: longint]: double
                               read GetVal write SetVal; default;
              published
                property    NrOfElem: longint read FNElem write SetVecSize;
                property    OnChange: TNotifyEvent read FOnChange write FOnChange;
                property    OnSortExchange: TSortExchgEvent
                               read FOnSortExchange write FOnSortExchange;
              end;

  TIntVector = class (TComponent)
                 private
                   FNElem         : longint;               { number of elements }
                   FVec           : array of integer;{pointer to vector elements}
                   FIsEmpty       : boolean;
                   FOnChange      : TNotifyEvent;
                   FOnSortExchange: TSortExchgEvent;
                   function    GetVal (Elem: longint): integer;
                   procedure   SetVal (Elem: longint; Value: integer);
                   function    CalcVecLeng: double;
                   procedure   SetIntVecSize (sz: longint);
                   procedure   SkewKurtIntern (LowElem, HighElem: integer;
                                  var Skewness, Kurtosis: double;
                                  var NumData: longint);
                 protected
                   procedure   SortExchange (ExchgWhat: byte; index1, index2,
                                  first, last: longint);
                 public
                   constructor Create (AOwner: TComponent); override;
                   destructor  Destroy; override;
                   procedure   Add (OtherVec: TIntVector);
                   procedure   Changed;
                   procedure   Clear;
                   procedure   Clone (VecSource: TIntVector);
                   procedure   CopyFrom (VecSource: TIntVector;
                                  SourceElemLo, SourceElemHi,
                                  DestElem: integer);
                   function    Correlate (OtherVec: TIntVector;
                                  ElemShift: integer): integer;
                   function    DotProduct (OtherVec: TIntVector): integer;
                   procedure   Fill (value: integer);
                   function    GeometricMean (LowElem, HighElem: integer): double;
                   function    HarmonicMean (LowElem, HighElem: integer): double;
                   property    Leng: double read CalcVecLeng;
                                    { %% read only - in contrast to TVector !! }
                   function    LoadFromFile (FileName: string;
                                  AdjustVectorSize: boolean): boolean;
                   procedure   MeanVar (LowElem, HighElem: integer;
                                  var Mean, Variance: double);
                   procedure   MinMax (LowElem, HighElem: integer;
                                  var Minimum, Maximum: integer);
                   function    Percentile (prob: double; LowElem,
                                  HighElem: integer): double;
                   function    Quartiles (LowElem, HighElem: integer;
                                  var Q1, Q2, Q3: double): boolean;
                   function    Resize (NE: longint): boolean;
                   procedure   SkewKurt (LowElem, HighElem: integer;
                                  var Skewness, Kurtosis: double);
                   procedure   SkewKurtSample (LowElem, HighElem: integer;
                                  var Skewness, Kurtosis: double);
                   procedure   SortElems (Ascending: boolean;
                                  RangeFirst, RangeLast: integer);
                   procedure   ShuffleElems;
                   procedure   SMult (scalar: integer);
                   function    StoreOnFile (FirstElem, LastElem: integer;
                                  FileName:string): boolean;
                   procedure   Subtract (OtherVec: TIntVector);
                   function    Sum (LowElem, HighElem: integer): longint;
                   property    IsEmpty: boolean read FIsEmpty write FIsEmpty;
                   property    Elem[ix: longint]: integer
                                  read GetVal write SetVal; default;
                 published
                   property    NrOfElem: longint read FNElem write SetIntVecSize;
                   property    OnChange: TNotifyEvent read FOnChange write FOnChange;
                   property    OnSortExchange: TSortExchgEvent
                                  read FOnSortExchange write FOnSortExchange;
               end;





Last Update: 2006-Jän-30