LazStats: Less hints and warning.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@7814 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2020-10-26 18:00:52 +00:00
parent af63896d52
commit cfe3a9c460
49 changed files with 222 additions and 192 deletions

View File

@ -763,7 +763,7 @@ var
ColLabels: StrDyneVec = nil; ColLabels: StrDyneVec = nil;
RowLabels: StrDyneVec = nil; RowLabels: StrDyneVec = nil;
AMatrix: DblDyneMat = nil; AMatrix: DblDyneMat = nil;
ColHeader: string; {%H-}ColHeader: string;
Title: string; Title: string;
i, j, k, row: integer; i, j, k, row: integer;
begin begin
@ -861,7 +861,7 @@ var
AMatrix: DblDyneMat = nil; AMatrix: DblDyneMat = nil;
PooledMat: DblDyneMat = nil; PooledMat: DblDyneMat = nil;
M1, M2, Sum1, C1, C2, f1, f2, chi, ProbChi, X, avgvar, avgcov: double; M1, M2, Sum1, C1, C2, f1, f2, chi, ProbChi, X, avgvar, avgcov: double;
ColHeader, LabelStr: string; {%H-}ColHeader, LabelStr: string;
Title: string; Title: string;
i, j, k, l, row, SubjA, SubjB, N, p, quad : integer; i, j, k, l, row, SubjA, SubjB, N, p, quad : integer;
Det: Double = 0.0; Det: Double = 0.0;

View File

@ -700,9 +700,9 @@ var
SSTotal: double; SSTotal: double;
// SSExplained: double; // SSExplained: double;
SSGrpTot: double = 0.0; SSGrpTot: double = 0.0;
tProbs: DblDyneVec; tProbs: DblDyneVec = nil;
BTtests: DblDyneVec; BTtests: DblDyneVec = nil;
BStdErrs: DblDyneVec; // standard errors of regression weights BStdErrs: DblDyneVec = nil; // standard errors of regression weights
localReport: TStrings; localReport: TStrings;
begin begin
{$IFDEF ANCOVA_DEBUG} {$IFDEF ANCOVA_DEBUG}
@ -1061,14 +1061,14 @@ end;
procedure TANCOVAfrm.AdjustMeans(AReport: TStrings); procedure TANCOVAfrm.AdjustMeans(AReport: TStrings);
var var
sum : double; sum : double;
GrpCovMeans : DblDyneMat; GrpCovMeans : DblDyneMat = nil;
AdjMeans : DblDyneVec; AdjMeans : DblDyneVec = nil;
Intercepts : DblDyneVec; Intercepts : DblDyneVec = nil;
i, j, k, col, grp, nogrps : integer; i, j, k, col, grp, nogrps : integer;
value : double; value : double;
Labels : StrDyneVec; Labels : StrDyneVec = nil;
noingrp : IntDyneVec; noingrp : IntDyneVec = nil;
XValue : DblDyneVec; XValue : DblDyneVec = nil;
maxmean : double; maxmean : double;
cell1 : string; cell1 : string;
begin begin
@ -1221,9 +1221,9 @@ end;
procedure TANCOVAfrm.MultCompare(AReport: TStrings); procedure TANCOVAfrm.MultCompare(AReport: TStrings);
var var
i, j, size : integer; i, j, size : integer;
covmat : DblDyneMat; covmat : DblDyneMat = nil;
title : string; title : string;
Labels : StrDyneVec; Labels : StrDyneVec = nil;
sum : double; sum : double;
df1, df2, F, Prob : double; df1, df2, F, Prob : double;

View File

@ -236,10 +236,14 @@ var
group, col: integer; group, col: integer;
p, X, f1, f2, f3, probf1, probf2, probf3, fd1, fd2, TotMean: double; p, X, f1, f2, f3, probf1, probf2, probf3, fd1, fd2, TotMean: double;
TotStdDev, den, maxmean: double; TotStdDev, den, maxmean: double;
C, StdDev: DblDyneMat; C: DblDyneMat = nil;
squaredsumx, sumxsquared, coltot, sumsum: DblDyneVec; StdDev: DblDyneMat = nil;
squaredsumx: DblDyneVec = nil;
sumxsquared: DblDyneVec = nil;
coltot: DblDyneVec = nil;
sumsum: DblDyneVec = nil;
degfree: array[1..8] of integer; degfree: array[1..8] of integer;
ColNoSelected: IntDyneVec; ColNoSelected: IntDyneVec = nil;
ss: array[1..8] of double; ss: array[1..8] of double;
ms: array[1..8] of double; ms: array[1..8] of double;
coeff: array[1..6] of double; coeff: array[1..6] of double;
@ -259,7 +263,7 @@ begin
exit; exit;
end; end;
SetLength(ColNoSelected,NoVariables+1); SetLength(ColNoSelected, NoVariables+1);
NoSelected := 1; NoSelected := 1;
// Get between subjects group variable // Get between subjects group variable
@ -644,8 +648,8 @@ end;
procedure TAxSAnovaFrm.PostHocTests(NoSelected: Integer; MSerr: double; procedure TAxSAnovaFrm.PostHocTests(NoSelected: Integer; MSerr: double;
dferr: integer; Count: integer; ColMeans: DblDyneVec; AReport: TStrings); dferr: integer; Count: integer; ColMeans: DblDyneVec; AReport: TStrings);
var var
group_total: DblDyneVec; group_total: DblDyneVec = nil;
group_count: DblDyneVec; group_count: DblDyneVec = nil;
i, mingrp: integer; i, mingrp: integer;
begin begin
SetLength(group_total,NoSelected); SetLength(group_total,NoSelected);
@ -780,7 +784,7 @@ procedure TAxSAnovaFrm.Newman_Keuls(
var var
i, j: integer; i, j: integer;
temp1, temp2: double; temp1, temp2: double;
groupno: IntDyneVec; groupno: IntDyneVec = nil;
alpha: double; alpha: double;
contrast, mean1, mean2: double; contrast, mean1, mean2: double;
q_stat: double; q_stat: double;
@ -924,7 +928,7 @@ var
df1: double; df1: double;
qstat: double; qstat: double;
tstat: double; tstat: double;
groupno: IntDyneVec; groupno: IntDyneVec = nil;
temp1, temp2: double; temp1, temp2: double;
tempno: integer; tempno: integer;
NoGrps: integer; NoGrps: integer;

View File

@ -2056,14 +2056,14 @@ procedure TBlksAnovaFrm.TwoWayContrasts(AReport: TStrings);
var var
i, j : integer; i, j : integer;
value : double; value : double;
variances : DblDyneVec; variances : DblDyneVec = nil;
RowSS, ColSS : double; RowSS, ColSS : double;
begin begin
if CompError then if CompError then
exit; exit;
SetLength(variances,totcells); SetLength(variances, totcells);
// Do row comparisons // Do row comparisons
if (NF1cells > 2) then if (NF1cells > 2) then
@ -2209,7 +2209,7 @@ procedure TBlksAnovaFrm.ThreeWayContrasts(AReport: TStrings);
var var
i, j, k : integer; i, j, k : integer;
value : double; value : double;
variances : DblDyneVec; variances : DblDyneVec = nil;
RowSS, ColSS, SlcSS : double; RowSS, ColSS, SlcSS : double;
begin begin

View File

@ -147,10 +147,10 @@ var
DataVar: string; DataVar: string;
cellstring: string; cellstring: string;
i, j, rangeA, rangeB, rangeC, mn, mx: integer; i, j, rangeA, rangeB, rangeC, mn, mx: integer;
cellcnts: IntDyneMat; cellcnts: IntDyneMat = nil;
celltotals: DblDyneMat; celltotals: DblDyneMat = nil;
Ctotals: DblDyneVec; Ctotals: DblDyneVec = nil;
design: StrDyneMat; design: StrDyneMat = nil;
G, term1, term2, term3, term4, term5, term6, sumxsqr: double; G, term1, term2, term3, term4, term5, term6, sumxsqr: double;
sumAsqr, sumBsqr, sumCsqr, sumABCsqr, SSA, SSB, SSC: double; sumAsqr, sumBsqr, sumCsqr, sumABCsqr, SSA, SSB, SSC: double;
SSwithin, SSres, SStotal: double; SSwithin, SSres, SStotal: double;
@ -442,10 +442,10 @@ var
i, j, k: integer; i, j, k: integer;
rangeA, rangeB, rangeC, rangeD: integer; rangeA, rangeB, rangeC, rangeD: integer;
mn, mx, minD: Integer; mn, mx, minD: Integer;
cellcnts: IntDyneCube; cellcnts: IntDyneCube = nil;
celltotals: DblDyneCube; celltotals: DblDyneCube = nil;
Ctotals: DblDyneVec; Ctotals: DblDyneVec = nil;
design: StrDyneMat; design: StrDyneMat = nil;
G, term1, term2, term3, term4, term5, term6, term7, term8: double; G, term1, term2, term3, term4, term5, term6, term7, term8: double;
term9, sumxsqr: double; term9, sumxsqr: double;
sumAsqr, sumBsqr, sumCsqr, sumDsqr, SSA, SSB, SSC, SSD: double; sumAsqr, sumBsqr, sumCsqr, sumDsqr, SSA, SSB, SSC, SSD: double;

View File

@ -7,7 +7,7 @@ interface
uses uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
ExtCtrls, StdCtrls, ExtCtrls, StdCtrls,
MainUnit, Globals, FunctionsLib, OutputUnit, DataProcs; MainUnit, Globals, OutputUnit, DataProcs;
type type
@ -166,7 +166,7 @@ var
variance1, variance2, pooled, sedif, df, ConfInt, tconfint: double; variance1, variance2, pooled, sedif, df, ConfInt, tconfint: double;
i, v1, v2, ncases1, ncases2, NoSelected: integer; i, v1, v2, ncases1, ncases2, NoSelected: integer;
group, min, max: integer; group, min, max: integer;
ColNoSelected: IntDyneVec; ColNoSelected: IntDyneVec = nil;
label1Str, label2Str: string; label1Str, label2Str: string;
msg: String; msg: String;
C: TWinControl; C: TWinControl;

View File

@ -199,7 +199,7 @@ end;
procedure TTwoCorrsFrm.ComputeBtnClick(Sender: TObject); procedure TTwoCorrsFrm.ComputeBtnClick(Sender: TObject);
var var
lReport: TStrings; lReport: TStrings;
Corxy, Corxz, Coryz, Cor1, Cor2, alpha, tvalue, df1, df2: double; Corxy, Corxz, Coryz, Cor1, Cor2, alpha, tvalue, df2: double;
CorDif, zOne, zTwo, zDif, StdErr, zValue, zprobability: double; CorDif, zOne, zTwo, zDif, StdErr, zValue, zprobability: double;
UCL, LCL, ztest, ConfLevel, tprobability, ttest: double; UCL, LCL, ztest, ConfLevel, tprobability, ttest: double;
mean1, mean2, mean3, variance1, variance2, variance3: double; mean1, mean2, mean3, variance1, variance2, variance3: double;
@ -273,7 +273,6 @@ begin
CorDif := Corxy - Corxz; CorDif := Corxy - Corxz;
alpha := (1.0 - ConfLevel) / 2.0; alpha := (1.0 - ConfLevel) / 2.0;
tvalue := CorDif * sqrt((SSize - 3.0) * (1.0 + Coryz)) / sqrt(2.0 * (1.0 - Corxy*Corxy - Corxz*Corxz - Coryz*Coryz + 2.0*Corxy*Corxz*Coryz)); tvalue := CorDif * sqrt((SSize - 3.0) * (1.0 + Coryz)) / sqrt(2.0 * (1.0 - Corxy*Corxy - Corxz*Corxz - Coryz*Coryz + 2.0*Corxy*Corxz*Coryz));
df1 := 1.0;
df2 := SSize - 3.0; df2 := SSize - 3.0;
tprobability := probt(tvalue,df2); tprobability := probt(tvalue,df2);
ttest := inverset(1.0 - alpha, df2); ttest := inverset(1.0 - alpha, df2);
@ -454,7 +453,6 @@ begin
alpha := (1.0 - ConfLevel) / 2.0; alpha := (1.0 - ConfLevel) / 2.0;
tvalue := CorDif * sqrt((SSize - 3.0) * (1.0 + Coryz)) / tvalue := CorDif * sqrt((SSize - 3.0) * (1.0 + Coryz)) /
sqrt(2.0 * (1.0 - Corxy * Corxy - Corxz * Corxz - Coryz * Coryz + 2.0 * Corxy * Corxz * Coryz)); sqrt(2.0 * (1.0 - Corxy * Corxy - Corxz * Corxz - Coryz * Coryz + 2.0 * Corxy * Corxz * Coryz));
df1 := 1.0;
df2 := SSize - 3.0; df2 := SSize - 3.0;
tprobability := probt(tvalue,df2); tprobability := probt(tvalue,df2);
ttest := inverset(1.0 - alpha, df2); ttest := inverset(1.0 - alpha, df2);

View File

@ -164,7 +164,7 @@ var
P, Q: double; P, Q: double;
i, v1, v2, NoSelected, f1, f2, f3, f4, ncases1, ncases2: integer; i, v1, v2, NoSelected, f1, f2, f3, f4, ncases1, ncases2: integer;
min, max, group, AB, AC, CD, BD: integer; min, max, group, AB, AC, CD, BD: integer;
ColNoSelected: IntDyneVec; ColNoSelected: IntDyneVec = nil;
msg: String; msg: String;
C: TWinControl; C: TWinControl;
lReport: TStrings; lReport: TStrings;

View File

@ -108,7 +108,7 @@ implementation
uses uses
TAChartUtils, TACustomSeries, TAChartUtils, TACustomSeries,
GridProcs, GridProcs,
Utils, MathUnit, MatrixUnit, ChartFrameUnit; Utils, MathUnit, ChartFrameUnit;
{ TWithinANOVAFrm } { TWithinANOVAFrm }
@ -161,13 +161,17 @@ procedure TWithinANOVAFrm.CalcANOVA(
out ARowMeans, ARowVariances, AColMeans,AColVariances: DblDyneVec; out ARowMeans, ARowVariances, AColMeans,AColVariances: DblDyneVec;
out AResults: TWithinANOVAResults); out AResults: TWithinANOVAResults);
var var
S: Double = 0;
SS: Double = 0; SS: Double = 0;
term1, term2, term3, term4: Double; term1, term2, term3, term4: Double;
noSelected: Integer; noSelected: Integer;
i, count: Integer; i, count: Integer;
begin begin
ARowMeans := nil;
ARowVariances := nil;
AColMeans := nil;
AColVariances := nil;
noSelected := SelList.Items.Count; noSelected := SelList.Items.Count;
count := Length(ARowSums); count := Length(ARowSums);
@ -297,7 +301,7 @@ end;
procedure TWithinANOVAFrm.Compute; procedure TWithinANOVAFrm.Compute;
var var
j, noSelected, DF: integer; noSelected, DF: integer;
r1, r2, r3, r4: double; r1, r2, r3, r4: double;
grandSum, grandSS: Double; grandSum, grandSS: Double;
determ1, determ2, chi2, prob: Double; determ1, determ2, chi2, prob: Double;
@ -532,6 +536,9 @@ var
avgVar, avgCov, C2, M2: Double; avgVar, avgCov, C2, M2: Double;
i, j, noSelected, count: Integer; i, j, noSelected, count: Integer;
begin begin
ASampleVarCovarMat := nil;
AssumedVarCovarMat := nil;
ErrorFound := false; ErrorFound := false;
noSelected := Length(ASelected); noSelected := Length(ASelected);
count := NoCases; count := NoCases;

View File

@ -79,6 +79,7 @@ function TMoveAvgFrm.GetRawWeights: DblDyneVec;
var var
r: Integer; r: Integer;
begin begin
Result := nil;
SetLength(Result, WeightGrid.RowCount - 1); SetLength(Result, WeightGrid.RowCount - 1);
for r := 1 to WeightGrid.RowCount - 1 do for r := 1 to WeightGrid.RowCount - 1 do
if WeightGrid.cells[1, r] = '' then if WeightGrid.cells[1, r] = '' then

View File

@ -53,7 +53,7 @@ type
procedure InBtnClick(Sender: TObject); procedure InBtnClick(Sender: TObject);
procedure OutBtnClick(Sender: TObject); procedure OutBtnClick(Sender: TObject);
procedure ResetBtnClick(Sender: TObject); procedure ResetBtnClick(Sender: TObject);
procedure SelectListSelectionChange(Sender: TObject; User: boolean); procedure SelectListSelectionChange(Sender: TObject; {%H-}User: boolean);
function ArrayPosition(NumDims: integer; const Data: DblDyneVec; function ArrayPosition(NumDims: integer; const Data: DblDyneVec;
const Subscripts, DimSize: IntDyneVec): integer; const Subscripts, DimSize: IntDyneVec): integer;
procedure Marginals(NumDims, ArraySize: integer; const Indexes: IntDyneMat; procedure Marginals(NumDims, ArraySize: integer; const Indexes: IntDyneMat;

View File

@ -51,7 +51,7 @@ implementation
uses uses
Math, Grids, Math, Grids,
Utils, DictionaryUnit, GridProcs; Utils, GridProcs;
{ TCrossTabCalculator } { TCrossTabCalculator }

View File

@ -27,7 +27,6 @@ type
FValues: DblDyneVec; FValues: DblDyneVec;
FMean, FStdErrorMean: Double; FMean, FStdErrorMean: Double;
FMin, FMax: Double; FMin, FMax: Double;
FSum: Double;
FVariance, FStdDev: Double; FVariance, FStdDev: Double;
FSkew, FStdErrorSkew: Double; FSkew, FStdErrorSkew: Double;
FKurtosis, FStdErrorKurtosis: Double; FKurtosis, FStdErrorKurtosis: Double;
@ -380,7 +379,7 @@ end;
procedure TDescriptiveFrm.Compute; procedure TDescriptiveFrm.Compute;
var var
i, j: Integer; i: Integer;
nSelected: Integer; nSelected: Integer;
selected: IntDyneVec = nil; selected: IntDyneVec = nil;
page: TTabSheet; page: TTabSheet;
@ -556,7 +555,6 @@ procedure TDescriptiveFrm.UpdateBtnStates;
var var
lSelected: Boolean; lSelected: Boolean;
i: Integer; i: Integer;
F: TReportFrame;
begin begin
inherited; inherited;

View File

@ -9,7 +9,7 @@ interface
uses uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs,
StdCtrls, ExtCtrls, Buttons, Clipbrd, ComCtrls, StdCtrls, ExtCtrls, Buttons, Clipbrd, ComCtrls,
MainUnit, Globals, DataProcs, DictionaryUnit, MainUnit, Globals, DataProcs,
BasicStatsReportAndChartFormUnit, ReportFrameUnit, ChartFrameUnit; BasicStatsReportAndChartFormUnit, ReportFrameUnit, ChartFrameUnit;
type type
@ -96,7 +96,6 @@ var
//minX, maxX, minY, maxY, //minX, maxX, minY, maxY,
X, Y: double; X, Y: double;
cellstring: string; cellstring: string;
maxGrpSize: integer = 0;
numInGrp: IntDyneVec = nil; numInGrp: IntDyneVec = nil;
xValues: DblDyneMat = nil; xValues: DblDyneMat = nil;
yValues: DblDyneMat = nil; yValues: DblDyneMat = nil;

View File

@ -162,7 +162,6 @@ var
tmpY: DblDyneVec = nil; tmpY: DblDyneVec = nil;
conf: DblDyneVec = nil; conf: DblDyneVec = nil;
ext: TDoubleRect; ext: TDoubleRect;
xmin, xmax, ymin, ymax: Double;
rightLabels: TListChartSource; rightLabels: TListChartSource;
topLabels: TListChartSource; topLabels: TListChartSource;
ser: TChartSeries; ser: TChartSeries;

View File

@ -45,7 +45,7 @@ type
procedure FormShow(Sender: TObject); procedure FormShow(Sender: TObject);
procedure HelpBtnClick(Sender: TObject); procedure HelpBtnClick(Sender: TObject);
procedure InBtnClick(Sender: TObject); procedure InBtnClick(Sender: TObject);
procedure ItemListSelectionChange(Sender: TObject; User: boolean); procedure ItemListSelectionChange(Sender: TObject; {%H-}User: boolean);
procedure OutBtnClick(Sender: TObject); procedure OutBtnClick(Sender: TObject);
procedure RelListClick(Sender: TObject); procedure RelListClick(Sender: TObject);
procedure ResetBtnClick(Sender: TObject); procedure ResetBtnClick(Sender: TObject);
@ -170,10 +170,10 @@ var
Rmat, RelMat: DblDyneMat; Rmat, RelMat: DblDyneMat;
Weights, Reliabilities, VectProd, means, variances, stddevs: DblDyneVec; Weights, Reliabilities, VectProd, means, variances, stddevs: DblDyneVec;
CompRel, numerator, denominator, compscore: double; CompRel, numerator, denominator, compscore: double;
colnoselected: IntDyneVec; colnoselected: IntDyneVec = nil;
cellstring: string; cellstring: string;
title: string; title: string;
RowLabels: StrDyneVec; RowLabels: StrDyneVec = nil;
lReport: TStrings; lReport: TStrings;
begin begin
if ItemList.Count = 0 then if ItemList.Count = 0 then
@ -191,7 +191,7 @@ begin
SetLength(means,NoVariables); SetLength(means,NoVariables);
SetLength(variances,NoVariables); SetLength(variances,NoVariables);
SetLength(stddevs,NoVariables); SetLength(stddevs,NoVariables);
SetLength(RowLabels,NoVariables); SetLength(RowLabels{%H-},NoVariables);
// get variable col. no.s selected // get variable col. no.s selected
NoVars := ItemList.Items.Count; NoVars := ItemList.Items.Count;

View File

@ -84,7 +84,7 @@ type
procedure ItemInBtnClick(Sender: TObject); procedure ItemInBtnClick(Sender: TObject);
procedure ItemOutBtnClick(Sender: TObject); procedure ItemOutBtnClick(Sender: TObject);
procedure ResetBtnClick(Sender: TObject); procedure ResetBtnClick(Sender: TObject);
procedure VarListSelectionChange(Sender: TObject; User: boolean); procedure VarListSelectionChange(Sender: TObject; {%H-}User: boolean);
private private
{ private declarations } { private declarations }
@ -958,7 +958,7 @@ end;
procedure TDIFfrm.ItemTestCorrs(AReport: TStrings); procedure TDIFfrm.ItemTestCorrs(AReport: TStrings);
var var
i, j: integer; i, j: integer;
Cors: DblDyneVec; Cors: DblDyneVec = nil;
title: string; title: string;
begin begin
SetLength(Cors,NoItems); SetLength(Cors,NoItems);
@ -987,8 +987,8 @@ end;
procedure TDIFfrm.ItemCurves; procedure TDIFfrm.ItemCurves;
var var
i, j: integer; i, j: integer;
XPlotPts: DblDyneMat; XPlotPts: DblDyneMat = nil;
YPlotPts: DblDyneMat; YPlotPts: DblDyneMat = nil;
max: integer; max: integer;
begin begin
SetLength(XPlotPts, 1, nolevels); SetLength(XPlotPts, 1, nolevels);

View File

@ -33,7 +33,7 @@ type
procedure InBtnClick(Sender: TObject); procedure InBtnClick(Sender: TObject);
procedure OutBtnClick(Sender: TObject); procedure OutBtnClick(Sender: TObject);
procedure ResetBtnClick(Sender: TObject); procedure ResetBtnClick(Sender: TObject);
procedure VarListSelectionChange(Sender: TObject; User: boolean); procedure VarListSelectionChange(Sender: TObject; {%H-}User: boolean);
private private
{ private declarations } { private declarations }
FAutoSized: Boolean; FAutoSized: Boolean;
@ -110,22 +110,22 @@ procedure TGuttmanFrm.ComputeBtnClick(Sender: TObject);
var var
i, j, k, col, X, e0, e1, e2, e3, first, last, errors : integer; i, j, k, col, X, e0, e1, e2, e3, first, last, errors : integer;
totalerrors, rowno : integer; totalerrors, rowno : integer;
FreqMat0 : IntDyneMat; // Pointer to array of 0 responses for each item by score group FreqMat0 : IntDyneMat = nil; // Pointer to array of 0 responses for each item by score group
FreqMat1 : IntDyneMat; // Pointer to array of 1 responses for each item by score group FreqMat1 : IntDyneMat = nil; // Pointer to array of 1 responses for each item by score group
RowTots : IntDyneVec; // Pointer to vector of total score frequencies for items RowTots : IntDyneVec= nil; // Pointer to vector of total score frequencies for items
ColTots : IntDyneMat; // Pointer to array of 0 and 1 column totals ColTots : IntDyneMat = nil; // Pointer to array of 0 and 1 column totals
ColProps : DblDyneVec; // Pointer to array of proportions correct in columns ColProps : DblDyneVec = nil; // Pointer to array of proportions correct in columns
ColNoSelected : IntDyneVec; // Pointer to vector of item Grid columns ColNoSelected : IntDyneVec = nil; // Pointer to vector of item Grid columns
CaseVector : IntDyneVec; // Pointer to vector of subject's item responses CaseVector : IntDyneVec = nil; // Pointer to vector of subject's item responses
TotalScore : integer; // Total score of a subject TotalScore : integer; // Total score of a subject
temp : integer; // temporary variable used in sorting temp : integer; // temporary variable used in sorting
CutScore : IntDyneVec; // Optimal cut scores for each item CutScore : IntDyneVec = nil; // Optimal cut scores for each item
ErrorMat : IntDyneMat; // matrix of errors above and below cut scores ErrorMat : IntDyneMat = nil; // matrix of errors above and below cut scores
sequence : IntDyneVec; // original and sorted sequence no. of items sequence : IntDyneVec = nil; // original and sorted sequence no. of items
CaseNo : IntDyneVec; // ID number for each case CaseNo : IntDyneVec = nil; // ID number for each case
ModalArray : IntDyneMat; // Array of modal item responses ModalArray : IntDyneMat = nil; // Array of modal item responses
NoSelected : integer; NoSelected : integer;
VarLabels : StrDyneVec; // variable labels VarLabels : StrDyneVec = nil; // variable labels
outline, astring : string; outline, astring : string;
done : boolean; done : boolean;
CoefRepro : double; CoefRepro : double;

View File

@ -339,9 +339,9 @@ var
cellstring: string; cellstring: string;
title: string; title: string;
nsize: array [1..2] of integer; nsize: array [1..2] of integer;
FData: IntDyneCube; //no. of category values within item for focal group FData: IntDyneCube = nil; //no. of category values within item for focal group
RData: IntDyneCube; //no. of category values within item for reference group RData: IntDyneCube = nil; //no. of category values within item for reference group
TotData: IntDyneCube; // sum of the above two TotData: IntDyneCube = nil; // sum of the above two
t, Mf, Mb, Sf, Sb, Nb, Nf, df, d, Sd: DblDyneVec; t, Mf, Mb, Sf, Sb, Nb, Nf, df, d, Sd: DblDyneVec;
Zc, Vart, BigJ, SumE, SumV, Term1, MY, prob: double; Zc, Vart, BigJ, SumE, SumV, Term1, MY, prob: double;
X, BigDnum, BigDden, BigD, BigDS, Zd, M2, E, VarE, Ti, dftot: double; X, BigDnum, BigDden, BigD, BigDS, Zd, M2, E, VarE, Ti, dftot: double;

View File

@ -45,7 +45,7 @@ type
procedure OutBtnClick(Sender: TObject); procedure OutBtnClick(Sender: TObject);
procedure SelListDblClick(Sender: TObject); procedure SelListDblClick(Sender: TObject);
procedure VarListDblClick(Sender: TObject); procedure VarListDblClick(Sender: TObject);
procedure VarListSelectionChange(Sender: TObject; User: boolean); procedure VarListSelectionChange(Sender: TObject; {%H-}User: boolean);
private private
@ -109,19 +109,19 @@ var
errcode : boolean; errcode : boolean;
filename : string; filename : string;
cellstring: string; cellstring: string;
Corrs : DblDyneMat; Corrs : DblDyneMat = nil;
Means : DblDyneVec; Means : DblDyneVec = nil;
Variances : DblDyneVec; Variances : DblDyneVec = nil;
StdDevs : DblDyneVec; StdDevs : DblDyneVec = nil;
ColNoSelected : IntDyneVec; ColNoSelected : IntDyneVec = nil;
title : string; title : string;
RowLabels : StrDyneVec; RowLabels : StrDyneVec = nil;
ColLabels : StrDyneVec; ColLabels : StrDyneVec = nil;
InverseMat : DblDyneMat; InverseMat : DblDyneMat = nil;
ProdMat : DblDyneMat; ProdMat : DblDyneMat = nil;
CorrMat : DblDyneMat; CorrMat : DblDyneMat = nil;
BetaWeights : DblDyneVec; BetaWeights : DblDyneVec = nil;
IndepIndex : IntDyneVec; IndepIndex : IntDyneVec = nil;
constant : double; constant : double;
lReport: TStrings; lReport: TStrings;
begin begin

View File

@ -49,7 +49,7 @@ type
procedure InBtnClick(Sender: TObject); procedure InBtnClick(Sender: TObject);
procedure OutBtnClick(Sender: TObject); procedure OutBtnClick(Sender: TObject);
procedure VarListDblClick(Sender: TObject); procedure VarListDblClick(Sender: TObject);
procedure VarListSelectionChange(Sender: TObject; User: boolean); procedure VarListSelectionChange(Sender: TObject; {%H-}User: boolean);
private private
{ private declarations } { private declarations }
@ -294,7 +294,7 @@ var
filename: string; filename: string;
R2: double; R2: double;
StdErrEst: double; StdErrEst: double;
IndepIndex: IntDyneVec; IndepIndex: IntDyneVec = nil;
constant: double; constant: double;
lReport: TStrings; lReport: TStrings;
begin begin

View File

@ -10,7 +10,7 @@ interface
uses uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, Buttons, ExtCtrls, Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, Buttons, ExtCtrls,
Globals, MainUnit, MatrixLib, FunctionsLib, DataProcs, DictionaryUnit, BasicStatsReportFormUnit; Globals, MainUnit, MatrixLib, DataProcs, DictionaryUnit, BasicStatsReportFormUnit;
type type
@ -53,7 +53,7 @@ type
procedure NextBlkBtnClick(Sender: TObject); procedure NextBlkBtnClick(Sender: TObject);
procedure OutBtnClick(Sender: TObject); procedure OutBtnClick(Sender: TObject);
procedure VarListDblClick(Sender: TObject); procedure VarListDblClick(Sender: TObject);
procedure VarListSelectionChange(Sender: TObject; User: boolean); procedure VarListSelectionChange(Sender: TObject; {%H-}User: boolean);
private private
BlkVarCols : IntDyneMat; BlkVarCols : IntDyneMat;
NoBlocks : integer; NoBlocks : integer;
@ -140,24 +140,22 @@ var
R2, df1, df2: double; R2, df1, df2: double;
StdErrEst, F, FProbF, OldR2 : double; StdErrEst, F, FProbF, OldR2 : double;
pdf1, probin, prout : double; pdf1, probin, prout : double;
BetaWeights : DblDyneVec; BetaWeights : DblDyneVec = nil;
corrs : DblDyneMat; corrs : DblDyneMat = nil;
Means : DblDyneVec; Means : DblDyneVec = nil;
Variances : DblDyneVec; Variances : DblDyneVec = nil;
StdDevs : DblDyneVec; StdDevs : DblDyneVec = nil;
title : string; title : string;
IndRowLabels : StrDyneVec; IndRowLabels : StrDyneVec = nil;
IndColLabels : StrDyneVec; IndColLabels : StrDyneVec = nil;
IndepInverse : DblDyneMat; IndepInverse : DblDyneMat = nil;
IndepIndex : IntDyneVec; IndepIndex : IntDyneVec = nil;
Candidate : IntDyneVec; Candidate : IntDyneVec = nil;
filename : string; filename : string;
ColEntered : IntDyneVec; ColEntered : IntDyneVec = nil;
constant : double; constant : double;
errcode: boolean = false; errcode: boolean = false;
NCases: Integer = 0; NCases: Integer = 0;
msg: String;
C: TWinControl;
lReport: TStrings; lReport: TStrings;
begin begin
SetLength(corrs,NoVariables+1,NoVariables+1); SetLength(corrs,NoVariables+1,NoVariables+1);

View File

@ -46,7 +46,7 @@ type
function Norm(z : double): double; function Norm(z : double): double;
function ix(j, k, nCols : integer): integer; function ix(j, k, nCols : integer): integer;
procedure VarListDblClick(Sender: TObject); procedure VarListDblClick(Sender: TObject);
procedure VarListSelectionChange(Sender: TObject; User: boolean); procedure VarListSelectionChange(Sender: TObject; {%H-}User: boolean);
private private
{ private declarations } { private declarations }
@ -133,7 +133,7 @@ var
cellstring : string; cellstring : string;
outline : string; outline : string;
nR : integer; // no. independent variables nR : integer; // no. independent variables
ColNoSelected : IntDyneVec; ColNoSelected : IntDyneVec = nil;
nC : integer; // no. cases nC : integer; // no. cases
nP : integer; // survival time variable nP : integer; // survival time variable
nS : integer; // survival status variable nS : integer; // survival status variable
@ -149,18 +149,18 @@ var
RowLabels, ColLabels : StrDyneVec; RowLabels, ColLabels : StrDyneVec;
CSq : double; // chi square statistic CSq : double; // chi square statistic
prob : double; // probability of chi square prob : double; // probability of chi square
SurvT : DblDyneVec; SurvT : DblDyneVec = nil;
Stat : DblDyneVec; Stat : DblDyneVec = nil;
Alpha : DblDyneVec; Alpha : DblDyneVec = nil;
a : DblDyneVec; a : DblDyneVec = nil;
b : DblDyneVec; b : DblDyneVec = nil;
s1 : DblDyneVec; s1 : DblDyneVec = nil;
s2 : DblDyneVec; s2 : DblDyneVec = nil;
s : DblDyneVec; s : DblDyneVec = nil;
Av : DblDyneVec; Av : DblDyneVec = nil;
SD : DblDyneVec; SD : DblDyneVec = nil;
SE : DblDyneVec; SE : DblDyneVec = nil;
x : DblDyneVec; // data matrix for independent variables x : DblDyneVec = nil; // data matrix for independent variables
Lo95 : double; Lo95 : double;
Hi95 : double; Hi95 : double;
d : double; d : double;

View File

@ -35,7 +35,7 @@ type
procedure InBtnClick(Sender: TObject); procedure InBtnClick(Sender: TObject);
procedure OutBtnClick(Sender: TObject); procedure OutBtnClick(Sender: TObject);
procedure VarListDblClick(Sender: TObject); procedure VarListDblClick(Sender: TObject);
procedure VarListSelectionChange(Sender: TObject; User: boolean); procedure VarListSelectionChange(Sender: TObject; {%H-}User: boolean);
private private
@ -43,7 +43,7 @@ type
procedure AdjustConstraints; override; procedure AdjustConstraints; override;
procedure Compute; override; procedure Compute; override;
procedure UpdateBtnStates; override; procedure UpdateBtnStates; override;
function Validate(out AMsg: String; out AControl: TWinControl): Boolean; function Validate(out AMsg: String; out AControl: TWinControl): Boolean; override;
public public
procedure Reset; override; procedure Reset; override;
@ -162,7 +162,6 @@ var
iters : integer; iters : integer;
Table : array[1..3,1..3] of integer; Table : array[1..3,1..3] of integer;
row, col : integer; row, col : integer;
maxIts: Integer;
lReport: TStrings; lReport: TStrings;
begin begin
lReport := TStringList.Create; lReport := TStringList.Create;
@ -191,9 +190,6 @@ begin
end; end;
end; end;
// Max count of iterations
maxIts := StrToInt(MaxItsEdit.Text);
nP := nR + 1; nP := nR + 1;
nP1 := nP + 1; nP1 := nP + 1;
for j := 1 to NoVariables do for j := 1 to NoVariables do

View File

@ -7,7 +7,7 @@ interface
uses uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs,
StdCtrls, Buttons, ExtCtrls, StdCtrls, Buttons, ExtCtrls,
Globals, MainUnit, MatrixLib, FunctionsLib, DataProcs, BasicStatsReportFormUnit; Globals, MainUnit, MatrixLib, DataProcs, BasicStatsReportFormUnit;
type type
@ -48,7 +48,7 @@ type
procedure DepOutBtnClick(Sender: TObject); procedure DepOutBtnClick(Sender: TObject);
procedure InBtnClick(Sender: TObject); procedure InBtnClick(Sender: TObject);
procedure SelListDblClick(Sender: TObject); procedure SelListDblClick(Sender: TObject);
procedure SelListSelectionChange(Sender: TObject; User: boolean); procedure SelListSelectionChange(Sender: TObject; {%H-}User: boolean);
procedure OutBtnClick(Sender: TObject); procedure OutBtnClick(Sender: TObject);
procedure VarListDblClick(Sender: TObject); procedure VarListDblClick(Sender: TObject);

View File

@ -7,7 +7,7 @@ interface
uses uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs,
StdCtrls, Buttons, ExtCtrls, ComCtrls, StdCtrls, Buttons, ExtCtrls, ComCtrls,
Globals, MainUnit, DictionaryUnit, Matrixlib, DataProcs, Globals, MainUnit, DictionaryUnit,
RegressionUnit, ReportFrameUnit, ChartFrameUnit, BasicStatsParamsFormUnit; RegressionUnit, ReportFrameUnit, ChartFrameUnit, BasicStatsParamsFormUnit;
type type
@ -196,7 +196,7 @@ procedure TWLSForm.AddVariable(AVarName: String; AData: DblDyneVec;
end; end;
var var
i, j, colIndex, row: Integer; i, colIndex, row: Integer;
begin begin
colIndex := GetVariableIndex(OS3MainFrm.DataGrid, AVarname); colIndex := GetVariableIndex(OS3MainFrm.DataGrid, AVarname);
if colIndex = -1 then if colIndex = -1 then

View File

@ -169,8 +169,8 @@ var
outline, ColHead: string; outline, ColHead: string;
Title : string; Title : string;
GrpVar, NoGrps, nowithin, TotalCases, value, grpno : integer; GrpVar, NoGrps, nowithin, TotalCases, value, grpno : integer;
ColNoSelected : IntDyneVec; ColNoSelected : IntDyneVec = nil;
NoInGrp : IntDyneVec; NoInGrp : IntDyneVec = nil;
VarLabels, ColLabels, GrpNos : StrDyneVec; VarLabels, ColLabels, GrpNos : StrDyneVec;
X, Y, GroupSS, ErrorSS, GroupMS, ErrorMS, TotalSS, num, s, v2, den : double; X, Y, GroupSS, ErrorSS, GroupMS, ErrorMS, TotalSS, num, s, v2, den : double;
Lambda, ChiSquare, Pillia, TotChi, p, Rc, chi, chiprob, m, L2, F, Fprob : double; Lambda, ChiSquare, Pillia, TotChi, p, Rc, chi, chiprob, m, L2, F, Fprob : double;

View File

@ -118,10 +118,10 @@ var
i, j, k, k1, k3, L, w3, n3, n4, n5, M, col, count: integer; i, j, k, k1, k3, L, w3, n3, n4, n5, M, col, count: integer;
GrpCnt, Nrows, Ncols, NoSelected: integer; GrpCnt, Nrows, Ncols, NoSelected: integer;
w2, k4, k5, L1 : IntDyneVec; w2, k4, k5, L1 : IntDyneVec;
ColSelected : IntDyneVec; ColSelected : IntDyneVec = nil;
X, Y, d1, x1, MaxError : double; X, Y, d1, x1, MaxError : double;
W, XAxis, YAxis, means, variances, stddevs : DblDyneVec; W, XAxis, YAxis, means, variances, stddevs : DblDyneVec;
Distance : DblDyneMat; Distance : DblDyneMat = nil;
lReport: TStrings; lReport: TStrings;
begin begin
if MaxGrpsChk.Checked then if MaxGrpsChk.Checked then

View File

@ -59,7 +59,7 @@ type
procedure FormCreate(Sender: TObject); procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject); procedure FormShow(Sender: TObject);
procedure InBtnClick(Sender: TObject); procedure InBtnClick(Sender: TObject);
procedure ListBox1SelectionChange(Sender: TObject; User: boolean); procedure ListBox1SelectionChange(Sender: TObject; {%H-}User: boolean);
procedure OutBtnClick(Sender: TObject); procedure OutBtnClick(Sender: TObject);
procedure ResetBtnClick(Sender: TObject); procedure ResetBtnClick(Sender: TObject);
procedure ResetModelBtnClick(Sender: TObject); procedure ResetModelBtnClick(Sender: TObject);

View File

@ -290,7 +290,7 @@ var
yates : boolean; yates : boolean;
NoSelected, NCases, NRows, NCols: Integer; NoSelected, NCases, NRows, NCols: Integer;
i, j, rowNo, colNo, depNo: integer; i, j, rowNo, colNo, depNo: integer;
Row, Col, df: integer; df: integer;
ChiSquare, probChi, phi: double; ChiSquare, probChi, phi: double;
AdjChiSqr, AdjProbChi, pearsonr, G, likelihood, MantelHaenszel, prob: double; AdjChiSqr, AdjProbChi, pearsonr, G, likelihood, MantelHaenszel, prob: double;
CoefCont, CramerV: double; CoefCont, CramerV: double;

View File

@ -35,7 +35,7 @@ type
procedure InBtnClick(Sender: TObject); procedure InBtnClick(Sender: TObject);
procedure OutBtnClick(Sender: TObject); procedure OutBtnClick(Sender: TObject);
procedure ResetBtnClick(Sender: TObject); procedure ResetBtnClick(Sender: TObject);
procedure VarListSelectionChange(Sender: TObject; User: boolean); procedure VarListSelectionChange(Sender: TObject; {%H-}User: boolean);
private private
{ private declarations } { private declarations }
FAutoSized: Boolean; FAutoSized: Boolean;
@ -113,7 +113,7 @@ end;
procedure TCochranQFrm.ComputeBtnClick(Sender: TObject); procedure TCochranQFrm.ComputeBtnClick(Sender: TObject);
var var
i, j, k, col: integer; i, j, k, col: integer;
ColNoSelected: IntDyneVec; ColNoSelected: IntDyneVec = nil;
R1, L1, L2, C1, g1, Q, g2, chiprob: double; R1, L1, L2, C1, g1, Q, g2, chiprob: double;
cellstring: string; cellstring: string;
lReport: TStrings; lReport: TStrings;

View File

@ -35,7 +35,7 @@ type
procedure InBtnClick(Sender: TObject); procedure InBtnClick(Sender: TObject);
procedure OutBtnClick(Sender: TObject); procedure OutBtnClick(Sender: TObject);
procedure ResetBtnClick(Sender: TObject); procedure ResetBtnClick(Sender: TObject);
procedure VarListSelectionChange(Sender: TObject; User: boolean); procedure VarListSelectionChange(Sender: TObject; {%H-}User: boolean);
private private
{ private declarations } { private declarations }
FAutoSized: Boolean; FAutoSized: Boolean;
@ -119,13 +119,13 @@ var
Temp, TotalCorrect, JudgeCorrect, ChiSquare, Probability : double; Temp, TotalCorrect, JudgeCorrect, ChiSquare, Probability : double;
TotalRankSums, Concordance, AvgRankCorr, AvgTotalRanks : double; TotalRankSums, Concordance, AvgRankCorr, AvgTotalRanks : double;
statistic : double; statistic : double;
scorearray : DblDyneMat; scorearray : DblDyneMat = nil;
temprank, ObjRankSums : DblDyneVec; temprank, ObjRankSums : DblDyneVec;
tempindex : IntDyneVec; tempindex : IntDyneVec = nil;
done : boolean; done : boolean;
value, cellstring, outline : string; value, cellstring, outline : string;
ColNoSelected : IntDyneVec; ColNoSelected : IntDyneVec = nil;
ColLabels : StrDyneVec; ColLabels : StrDyneVec = nil;
lReport: TStrings; lReport: TStrings;
begin begin
if SelList.Items.Count = 0 then if SelList.Items.Count = 0 then

View File

@ -186,7 +186,7 @@ var
N, APlusB, APlusC, BPlusD, CPlusD, NoSelected, dep: integer; N, APlusB, APlusC, BPlusD, CPlusD, NoSelected, dep: integer;
FirstP, p, SumProb, Tocher, Alpha, X: double; FirstP, p, SumProb, Tocher, Alpha, X: double;
obs: array[1..2, 1..2] of integer; obs: array[1..2, 1..2] of integer;
ColNoSelected: IntDyneVec; ColNoSelected: IntDyneVec = nil;
done, ok: boolean; done, ok: boolean;
response: string; response: string;
lReport: TStrings; lReport: TStrings;
@ -210,7 +210,7 @@ begin
end; end;
end; end;
SetLength(ColNoSelected,3); SetLength(ColNoSelected, 3);
ColNoSelected[0] := row; ColNoSelected[0] := row;
ColNoSelected[1] := col; ColNoSelected[1] := col;
if InputGrp.ItemIndex = 2 then if InputGrp.ItemIndex = 2 then

View File

@ -88,7 +88,7 @@ object FriedmanFrm: TFriedmanFrm
OnClick = HelpBtnClick OnClick = HelpBtnClick
TabOrder = 1 TabOrder = 1
end end
object Bevel1: TBevel object ButtonBevel: TBevel
AnchorSideLeft.Control = Owner AnchorSideLeft.Control = Owner
AnchorSideRight.Control = Owner AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
@ -105,7 +105,7 @@ object FriedmanFrm: TFriedmanFrm
AnchorSideTop.Control = Owner AnchorSideTop.Control = Owner
AnchorSideRight.Control = Owner AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = Bevel1 AnchorSideBottom.Control = ButtonBevel
Left = 8 Left = 8
Height = 273 Height = 273
Top = 8 Top = 8

View File

@ -15,7 +15,7 @@ type
{ TFriedmanFrm } { TFriedmanFrm }
TFriedmanFrm = class(TForm) TFriedmanFrm = class(TForm)
Bevel1: TBevel; ButtonBevel: TBevel;
HelpBtn: TButton; HelpBtn: TButton;
Panel1: TPanel; Panel1: TPanel;
ResetBtn: TButton; ResetBtn: TButton;
@ -41,7 +41,7 @@ type
procedure ResetBtnClick(Sender: TObject); procedure ResetBtnClick(Sender: TObject);
procedure TrtInClick(Sender: TObject); procedure TrtInClick(Sender: TObject);
procedure TrtOutClick(Sender: TObject); procedure TrtOutClick(Sender: TObject);
procedure VarListSelectionChange(Sender: TObject; User: boolean); procedure VarListSelectionChange(Sender: TObject; {%H-}User: boolean);
private private
{ private declarations } { private declarations }
FAutosized: Boolean; FAutosized: Boolean;
@ -150,13 +150,14 @@ Var
s, t, TotRanks, chisqr, probchi, score : double; s, t, TotRanks, chisqr, probchi, score : double;
X, ColRanks : DblDyneVec; X, ColRanks : DblDyneVec;
Ranks, means : DblDyneMat; Ranks, means : DblDyneMat;
RowLabels, ColLabels : StrDyneVec; RowLabels: StrDyneVec = nil;
ColLabels: StrDyneVec = nil;
index : IntDyneVec; index : IntDyneVec;
GrpNo : IntdyneMat; GrpNo : IntdyneMat;
cellstring: string; cellstring: string;
title : string; title : string;
ties : boolean; ties : boolean;
ColNoSelected : IntDyneVec; ColNoSelected : IntDyneVec = nil;
lReport: TStrings; lReport: TStrings;
begin begin
if GrpVar.Text = '' then begin if GrpVar.Text = '' then begin
@ -173,7 +174,7 @@ begin
k := TreatVars.Items.Count; k := TreatVars.Items.Count;
NoSelected := k + 1; NoSelected := k + 1;
SetLength(ColNoSelected,NoVariables); SetLength(ColNoSelected,NoVariables);
SetLength(ColLabels,NoVariables); SetLength(ColLabels, NoVariables);
// get group variable and treatment variables // get group variable and treatment variables
GrpCol := 0; GrpCol := 0;

View File

@ -43,7 +43,7 @@ type
procedure GrpInClick(Sender: TObject); procedure GrpInClick(Sender: TObject);
procedure GrpOutClick(Sender: TObject); procedure GrpOutClick(Sender: TObject);
procedure ResetBtnClick(Sender: TObject); procedure ResetBtnClick(Sender: TObject);
procedure VarListSelectionChange(Sender: TObject; User: boolean); procedure VarListSelectionChange(Sender: TObject; {%H-}User: boolean);
private private
{ private declarations } { private declarations }
FAutoSized: Boolean; FAutoSized: Boolean;
@ -111,12 +111,12 @@ var
i, j, k, m, ind_var, dep_var, min_grp, max_grp, group, total_n : integer; i, j, k, m, ind_var, dep_var, min_grp, max_grp, group, total_n : integer;
NoTies, NoTieGroups, nogroups, NoSelected, npairs, n1, n2 : integer; NoTies, NoTieGroups, nogroups, NoSelected, npairs, n1, n2 : integer;
largestn : integer; largestn : integer;
ColNoSelected : IntdyneVec; ColNoSelected : IntdyneVec = nil;
group_count : IntDyneVec; group_count : IntDyneVec = nil;
score, t, SumT, Avg, Probchi, H, CorrectedH, value : double; score, t, SumT, Avg, Probchi, H, CorrectedH, value : double;
Correction, Temp, TieSum, alpha, U, U2, SD, z, prob : double; Correction, Temp, TieSum, alpha, U, U2, SD, z, prob : double;
Ranks, X : DblDyneMat; Ranks, X : DblDyneMat;
RankSums : DblDyneVec; RankSums : DblDyneVec = nil;
cellstring, outline: string; cellstring, outline: string;
lReport: TStrings; lReport: TStrings;
begin begin
@ -151,7 +151,6 @@ begin
MessageDlg('Alpha level must be a valid number between 0 and 1.', mtError, [mbOK], 0); MessageDlg('Alpha level must be a valid number between 0 and 1.', mtError, [mbOK], 0);
end; end;
// allocate space // allocate space
SetLength(ColNoSelected,NoVariables); SetLength(ColNoSelected,NoVariables);
SetLength(Ranks,NoCases,2); SetLength(Ranks,NoCases,2);

View File

@ -9,7 +9,7 @@ interface
uses uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs,
StdCtrls, Buttons, ExtCtrls, StdCtrls, Buttons, ExtCtrls,
MainUnit, FunctionslIB, Globals, DataProcs, BasicStatsReportFormUnit; MainUnit, FunctionslIB, Globals, BasicStatsReportFormUnit;
type type
@ -32,7 +32,7 @@ type
procedure GrpInClick(Sender: TObject); procedure GrpInClick(Sender: TObject);
procedure GrpOutClick(Sender: TObject); procedure GrpOutClick(Sender: TObject);
procedure VarListDblClick(Sender: TObject); procedure VarListDblClick(Sender: TObject);
procedure VarListSelectionChange(Sender: TObject; User: boolean); procedure VarListSelectionChange(Sender: TObject; {%H-}User: boolean);
private private
protected protected

View File

@ -209,10 +209,10 @@ var
i, j, RowNo, RefColNo, NoToAnalyze : integer; i, j, RowNo, RefColNo, NoToAnalyze : integer;
Row, Col, Ncases, Nrows, Ncols, df : integer; Row, Col, Ncases, Nrows, Ncols, df : integer;
RowLabels, ColLabels : StrDyneVec; RowLabels, ColLabels : StrDyneVec;
ColNoSelected : IntDyneVec; ColNoSelected : IntDyneVec = nil;
cellstring : string; cellstring : string;
outline : string; outline : string;
Freq : IntDyneMat; Freq : IntDyneMat = nil;
Prop, Expected, CellChi : DblDyneMat; Prop, Expected, CellChi : DblDyneMat;
ChiSquare, ProbChi : double; ChiSquare, ProbChi : double;
yates : boolean; yates : boolean;

View File

@ -28,7 +28,7 @@ type
procedure Var2InClick(Sender: TObject); procedure Var2InClick(Sender: TObject);
procedure Var2OutClick(Sender: TObject); procedure Var2OutClick(Sender: TObject);
procedure VarListDblClick(Sender: TObject); procedure VarListDblClick(Sender: TObject);
procedure VarListSelectionChange(Sender: TObject; User: boolean); procedure VarListSelectionChange(Sender: TObject; {%H-}User: boolean);
private private
protected protected

View File

@ -7,7 +7,7 @@ interface
uses uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs,
StdCtrls, Buttons, ExtCtrls, StdCtrls, Buttons, ExtCtrls,
MainUnit, FunctionsLib, Globals, DataProcs, BasicStatsReportFormUnit; MainUnit, Globals, DataProcs, BasicStatsReportFormUnit;
type type
@ -71,7 +71,7 @@ procedure TSpearmanForm.Compute;
var var
index: IntDyneMat = nil; index: IntDyneMat = nil;
Ranks: DblDyneMat = nil; Ranks: DblDyneMat = nil;
X: DblDyneMat; X: DblDyneMat = nil;
d: DblDyneVec = nil; d: DblDyneVec = nil;
ColNoSelected: IntDyneVec = nil; ColNoSelected: IntDyneVec = nil;
ColLabels: StrDyneVec = nil; ColLabels: StrDyneVec = nil;

View File

@ -49,8 +49,6 @@ implementation
{$R *.lfm} {$R *.lfm}
uses
Math;
{ TWilcoxonForm } { TWilcoxonForm }

View File

@ -7,8 +7,8 @@ interface
uses uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls, Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls,
StdCtrls, ComCtrls, Buttons, StdCtrls, ComCtrls, Buttons,
Globals, MainUnit, ContextHelpUnit, Globals, MainUnit,
BasicStatsReportAndChartFormUnit, ReportFrameUnit, ChartFrameUnit; BasicStatsReportAndChartFormUnit, ChartFrameUnit;
type type

View File

@ -6,7 +6,7 @@ interface
uses uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ComCtrls, ExtCtrls, Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ComCtrls, ExtCtrls,
StdCtrls, ReportFrameUnit, ChartFrameUnit, BasicStatsParamsFormUnit; ReportFrameUnit, ChartFrameUnit, BasicStatsParamsFormUnit;
type type

View File

@ -94,18 +94,18 @@ end;
procedure TMultGenFrm.ComputeBtnClick(Sender: TObject); procedure TMultGenFrm.ComputeBtnClick(Sender: TObject);
var var
RhoMat: DblDyneMat; RhoMat: DblDyneMat = nil;
SampMat: DblDyneMat; SampMat: DblDyneMat = nil;
Mus: DblDyneVec; Mus: DblDyneVec = nil;
means: DblDyneVec; means: DblDyneVec = nil;
Sigmas: DblDyneVec; Sigmas: DblDyneVec = nil;
stddevs: DblDyneVec; stddevs: DblDyneVec = nil;
i, j, k, i1, i2, n2, k1: integer; i, j, k, i1, i2, n2, k1: integer;
determ, n3, r1, s8, s9, d2, x, y, mean: double; determ, n3, r1, s8, s9, d2, x, y, mean: double;
cellstring: string; cellstring: string;
title: string; title: string;
RowLabels: StrDyneVec; RowLabels: StrDyneVec = nil;
ColLabels: StrDyneVec; ColLabels: StrDyneVec = nil;
lReport: TStrings; lReport: TStrings;
begin begin
if (NoVarsEdit.Text = '') then begin if (NoVarsEdit.Text = '') then begin

View File

@ -82,8 +82,8 @@ var
alphas: array[1..6] of double; alphas: array[1..6] of double;
zalphas: array[1..6] of double; zalphas: array[1..6] of double;
xalphas: array[1..6] of double; xalphas: array[1..6] of double;
XPlotPts: DblDyneMat; XPlotPts: DblDyneMat = nil;
YPlotPts: DblDyneMat; YPlotPts: DblDyneMat = nil;
LabelStr, outline: string; LabelStr, outline: string;
oldCursor: TCursor; oldCursor: TCursor;
lReport: TStrings; lReport: TStrings;

View File

@ -223,7 +223,7 @@ var
i, j: integer; i, j: integer;
temp1: double; temp1: double;
temp2: Integer; temp2: Integer;
groupno : IntDyneVec; groupno : IntDyneVec = nil;
contrast, mean1, mean2 : double; contrast, mean1, mean2 : double;
q_stat : double; q_stat : double;
divisor : double; divisor : double;
@ -524,7 +524,7 @@ var
df1: double; df1: double;
qstat: double; qstat: double;
tstat: double; tstat: double;
groupno: IntDyneVec; groupno: IntDyneVec = nil;
temp1: Double; temp1: Double;
temp2: Integer; temp2: Integer;
tempno: integer; tempno: integer;

View File

@ -50,6 +50,7 @@ var
row, n: Integer; row, n: Integer;
val: Double; val: Double;
begin begin
Result := nil;
SetLength(Result, AGrid.RowCount); SetLength(Result, AGrid.RowCount);
n := 0; n := 0;
for row := 1 to AGrid.RowCount-1 do for row := 1 to AGrid.RowCount-1 do
@ -82,6 +83,7 @@ var
r, c, i, j: Integer; r, c, i, j: Integer;
val: Double; val: Double;
begin begin
Result := nil;
SetLength(Result, AGrid.RowCount, Length(AColIndices)); SetLength(Result, AGrid.RowCount, Length(AColIndices));
i := 0; i := 0;
for r:= 1 to AGrid.RowCount-1 do for r:= 1 to AGrid.RowCount-1 do

View File

@ -121,6 +121,7 @@ operator + (A, B: TDblVector): TDblVector;
var var
i, n: Integer; i, n: Integer;
begin begin
Result := nil;
VecCheck(A, B, n); VecCheck(A, B, n);
SetLength(Result, n); SetLength(Result, n);
for i := 0 to n-1 do for i := 0 to n-1 do
@ -132,6 +133,7 @@ operator - (A, B: TDblVector): TDblVector;
var var
i, n: Integer; i, n: Integer;
begin begin
Result := nil;
VecCheck(A, B, n); VecCheck(A, B, n);
SetLength(Result, n); SetLength(Result, n);
for i := 0 to n-1 do for i := 0 to n-1 do
@ -156,6 +158,7 @@ operator * (A: TDblVector; b: Double): TDblVector;
var var
i, n: Integer; i, n: Integer;
begin begin
Result := nil;
n := Length(A); n := Length(A);
SetLength(Result, n); SetLength(Result, n);
for i := 0 to n-1 do for i := 0 to n-1 do
@ -166,6 +169,7 @@ operator * (a: Double; B: TDblVector): TDblVector;
var var
i, n: Integer; i, n: Integer;
begin begin
Result := nil;
n := Length(B); n := Length(B);
SetLength(Result, n); SetLength(Result, n);
for i := 0 to n-1 do for i := 0 to n-1 do
@ -190,6 +194,7 @@ function VecCopy(A: TDblVector): TDblVector;
var var
i: Integer; i: Integer;
begin begin
Result := nil;
SetLength(Result, Length(A)); SetLength(Result, Length(A));
for i := 0 to High(A) do Result[i] := A[i]; for i := 0 to High(A) do Result[i] := A[i];
end; end;
@ -199,6 +204,7 @@ function VecMultiply(A, B: TDblVector): TDblVector;
var var
i, n: Integer; i, n: Integer;
begin begin
Result := nil;
VecCheck(A, B, n); VecCheck(A, B, n);
SetLength(Result, n); SetLength(Result, n);
for i := 0 to n-1 do for i := 0 to n-1 do
@ -210,6 +216,7 @@ function VecOnes(n: Integer): TDblVector;
var var
i: Integer; i: Integer;
begin begin
Result := nil;
SetLength(Result, n); SetLength(Result, n);
for i := 0 to n-1 do Result[i] := 1; for i := 0 to n-1 do Result[i] := 1;
end; end;
@ -333,6 +340,7 @@ var
i, j: Integer; i, j: Integer;
factor: Double; factor: Double;
begin begin
Result := nil;
SetLength(Result, N); SetLength(Result, N);
for j := 0 to N-1 do Result[j] := 0; for j := 0 to N-1 do Result[j] := 0;
@ -375,6 +383,7 @@ begin
if (n <> Length(B)) or (m <> Length(B[0])) then if (n <> Length(B)) or (m <> Length(B[0])) then
raise EMatrix.Create('Matrix subtraction: dimension error'); raise EMatrix.Create('Matrix subtraction: dimension error');
Result := nil;
SetLength(Result, n,m); SetLength(Result, n,m);
for i := 0 to n-1 do for i := 0 to n-1 do
for j := 0 to m-1 do for j := 0 to m-1 do
@ -391,6 +400,7 @@ begin
if (n <> Length(B)) or (m <> Length(B[0])) then if (n <> Length(B)) or (m <> Length(B[0])) then
raise EMatrix.Create('Matrix subtraction: dimension error'); raise EMatrix.Create('Matrix subtraction: dimension error');
Result := nil;
SetLength(Result, n,m); SetLength(Result, n,m);
for i := 0 to n-1 do for i := 0 to n-1 do
for j := 0 to m-1 do for j := 0 to m-1 do
@ -409,6 +419,7 @@ begin
if ma <> nb then if ma <> nb then
raise EMatrix.Create('Matrix product: dimension error'); raise EMatrix.Create('Matrix product: dimension error');
Result := nil;
SetLength(Result, na,mb); SetLength(Result, na,mb);
for i := 0 to na-1 do for i := 0 to na-1 do
@ -432,6 +443,7 @@ begin
if ma <> nv then if ma <> nv then
raise EMatrix.Create('Dimension error.'); raise EMatrix.Create('Dimension error.');
Result := nil;
SetLength(Result, na); SetLength(Result, na);
for i := 0 to na-1 do for i := 0 to na-1 do
begin begin
@ -454,6 +466,7 @@ begin
if n <> nv then if n <> nv then
raise EMatrix.Create('Dimension error.'); raise EMatrix.Create('Dimension error.');
Result := nil;
SetLength(Result, n, m+1); SetLength(Result, n, m+1);
for i := 0 to n-1 do for i := 0 to n-1 do
begin begin
@ -502,6 +515,10 @@ var
n, m, i, j: Integer; n, m, i, j: Integer;
s, ss: Double; s, ss: Double;
begin begin
AMeans := nil;
AVariances := nil;
AStdDevs := nil;
MatSize(A, n, m); MatSize(A, n, m);
SetLength(AMeans, m); SetLength(AMeans, m);
SetLength(AVariances, m); SetLength(AVariances, m);
@ -527,6 +544,7 @@ var
i, j, n, m: Integer; i, j, n, m: Integer;
sum: Double; sum: Double;
begin begin
Result := nil;
MatSize(A, n, m); MatSize(A, n, m);
SetLength(Result, m); SetLength(Result, m);
for j := 0 to m-1 do for j := 0 to m-1 do
@ -543,6 +561,7 @@ function MatColVector(A: TDblMatrix; AColIndex: Integer): TDblVector;
var var
i, n, m: Integer; i, n, m: Integer;
begin begin
Result := nil;
MatSize(A, n,m); MatSize(A, n,m);
SetLength(Result, n); SetLength(Result, n);
for i := 0 to n-1 do for i := 0 to n-1 do
@ -554,6 +573,7 @@ function MatCopy(A: TDblMatrix): TDblMatrix;
var var
n, m, i, j: Integer; n, m, i, j: Integer;
begin begin
Result := nil;
MatSize(A, n,m); MatSize(A, n,m);
SetLength(Result, n, m); SetLength(Result, n, m);
for i := 0 to n-1 do for i := 0 to n-1 do
@ -619,8 +639,10 @@ function MatInverse(A: TDblMatrix): TDblMatrix;
var var
i, j, n: integer; i, j, n: integer;
S: TLUSolver; S: TLUSolver;
v: TDblVector; v: TDblVector = nil;
begin begin
Result := nil;
MatCheck(A); MatCheck(A);
MatCheckSquare(A, n); MatCheckSquare(A, n);
SetLength(Result, n,n); SetLength(Result, n,n);
@ -672,6 +694,8 @@ var
i, j, n, m: Integer; i, j, n, m: Integer;
sum: Double; sum: Double;
begin begin
Result := nil;
MatSize(A, n,m); MatSize(A, n,m);
SetLength(Result, n); SetLength(Result, n);
for i := 0 to n-1 do for i := 0 to n-1 do
@ -688,6 +712,8 @@ function MatRowVector(A: TDblMatrix; ARowIndex: Integer): TDblVector;
var var
j, n, m: Integer; j, n, m: Integer;
begin begin
Result := nil;
MatSize(A, n,m); MatSize(A, n,m);
SetLength(Result, m); SetLength(Result, m);
for j := 0 to m-1 do for j := 0 to m-1 do
@ -713,6 +739,8 @@ function MatTransposed(A: TDblMatrix): TDblMatrix;
var var
n, m, i, j: Integer; n, m, i, j: Integer;
begin begin
Result := nil;
MatCheck(A); MatCheck(A);
MatSize(A, n, m); MatSize(A, n, m);
SetLength(Result, m, n); SetLength(Result, m, n);
@ -726,6 +754,8 @@ function SubMatrix(A: TDblMatrix; i1,j1, i2,j2: Integer): TDblMatrix;
var var
i, j, n, m: Integer; i, j, n, m: Integer;
begin begin
Result := nil;
MatSize(A, n,m); MatSize(A, n,m);
i1 := EnsureRange(i1, 0, n); i1 := EnsureRange(i1, 0, n);
i2 := EnsureRange(i2, 0, n); i2 := EnsureRange(i2, 0, n);
@ -811,7 +841,7 @@ const
var var
k, j, imax, i: integer; k, j, imax, i: integer;
sum, dum, big: float; sum, dum, big: float;
vv: TDblVector; vv: TDblVector = nil;
n : integer; n : integer;
begin begin
n := MatNumRows(FLU); n := MatNumRows(FLU);

View File

@ -28,7 +28,7 @@ function IndexOfString(L: StrDyneVec; s: String): Integer;
implementation implementation
uses uses
StrUtils, Math, ToolWin; StrUtils, ToolWin;
// https://stackoverflow.com/questions/4093595/create-ttoolbutton-runtime // https://stackoverflow.com/questions/4093595/create-ttoolbutton-runtime
procedure AddButtonToToolbar(AToolButton: TToolButton; AToolBar: TToolBar); procedure AddButtonToToolbar(AToolButton: TToolButton; AToolBar: TToolBar);