Программная реализация модального управления для линейных стационарных систем
| Категория реферата: Рефераты по радиоэлектронике
| Теги реферата: шпаргалки по педагогике, судебная реферат
| Добавил(а) на сайт: Anzhelika.
Предыдущая страница реферата | 14 15 16 17 18 19 20 21 22 23 24 | Следующая страница реферата
NearlyZero = 1E-15;
type
TMatrix = class (TObject) private
DataPtr: Pointer;
FCols, FRows: Word; function GetCell (ACol, ARow: Word): Float; procedure SetCell (ACol, ARow: Word; AValue: Float); function GetItem (NumItem: LongInt): Float; procedure SetItem (NumItem: LongInt; AValue: Float); procedure SwitchRows (FirstRow, SecondRow: Word); public constructor Create (NCols, NRows: Word); destructor Destroy; override; procedure Assign (AMatrix: TMatrix); procedure ReSize (NewCols, NewRows: Word); procedure SetNull; procedure SetSingle; procedure SetNegative; procedure AddConst (AConst: Float); procedure AddMatrix (AMatrix: TMatrix); procedure MultConst (MConst: Float); procedure MultFromRight (MMatrix: TMatrix); procedure MultFromLeft (MMatrix: TMatrix); procedure NthPower (Power: Word); procedure Transpose; function Inverse: Boolean; function Determinant: Float; function Rang: Float; property ColCount: Word read FCols; property RowCount: Word read FRows; property Cells [ACol, ARow: Word]: Float read GetCell write SetCell; default; property Items [NumItem: LongInt]: Float read GetItem write SetItem; end;
implementation
uses Windows;
function IncPtr (p: Pointer; i: LongInt): Pointer; asm push EBX mov EBX,EAX add EBX,EDX mov EAX,EBX pop EBX end;
function TMatrix.GetCell (ACol, ARow: Word): Float; var
CellPtr: ^Float; begin
CellPtr := IncPtr(DataPtr, (FRows * Pred(ACol) + Pred(ARow)) *
SizeOf(Float));
Result := CellPtr^; end;
procedure TMatrix.SetCell (ACol, ARow: Word; AValue: Float); var
CellPtr: ^Float; begin
CellPtr := IncPtr(DataPtr, (FRows * Pred(ACol) + Pred(ARow)) *
SizeOf(Float));
CellPtr^ := AValue; end;
function TMatrix.GetItem (NumItem: LongInt): Float; var
CellPtr: ^Float; begin
CellPtr := IncPtr(DataPtr, Pred(NumItem) * SizeOf(Float));
Result := CellPtr^; end;
procedure TMatrix.SetItem (NumItem: LongInt; AValue: Float); var
CellPtr: ^Float; begin
CellPtr := IncPtr(DataPtr, Pred(NumItem) * SizeOf(Float));
CellPtr^ := AValue; end;
procedure TMatrix.SwitchRows (FirstRow, SecondRow: Word); var i: Word;
Рекомендуем скачать другие рефераты по теме: виленкин математика 6 класс решебник, шпора на пятке лечение, дипломная работа формирование.
Категории:
Предыдущая страница реферата | 14 15 16 17 18 19 20 21 22 23 24 | Следующая страница реферата