INTERFACE SimplexD; TYPE EnergyFunc = PROCEDURE (VAR vet: ARRAY OF REAL; tag: TEXT; ITer: CARDINAL): REAL; ReportProc = PROCEDURE (ITer, ILo, IHi: CARDINAL); NormalizeProc = PROCEDURE (VAR x: ARRAY OF REAL); PROCEDURE Simplex( VAR matrix: ARRAY OF ARRAY OF REAL; (* In: starting simplex *) VAR Y: ARRAY OF REAL; (* Function value of each matrix line *) Func: EnergyFunc; maxCalls: CARDINAL; (* Maximum number of calls to "Func". *) ReportStatusBefore, ReportStatusAfter: ReportProc; normalize: NormalizeProc := NIL; (* Called to modify point before applying "f". *) ): CARDINAL; (* Out: matrix line index of the best point found *) END SimplexD.