2013-05-18 11:54:11 -06:00
|
|
|
// Creates Simplex
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <stdlib.h>
|
|
|
|
|
2022-08-06 22:23:15 -06:00
|
|
|
double **
|
|
|
|
simplex (int n, double *a, double *da)
|
2013-05-18 11:54:11 -06:00
|
|
|
{
|
2022-08-06 22:23:15 -06:00
|
|
|
int i, j;
|
2013-05-18 11:54:11 -06:00
|
|
|
double **p;
|
|
|
|
|
|
|
|
// Allocate pointers to rows
|
2022-08-06 22:23:15 -06:00
|
|
|
p = (double **) malloc (sizeof (double *) * (n + 1));
|
2013-05-18 11:54:11 -06:00
|
|
|
|
|
|
|
// Allocate rows and set pointers
|
2022-08-06 22:23:15 -06:00
|
|
|
for (i = 0; i <= n; i++)
|
|
|
|
p[i] = (double *) malloc (sizeof (double) * (n + 1) * n);
|
2013-05-18 11:54:11 -06:00
|
|
|
|
|
|
|
// Fill simplex
|
2022-08-06 22:23:15 -06:00
|
|
|
for (i = 0; i <= n; i++)
|
|
|
|
{
|
|
|
|
for (j = 0; j < n; j++)
|
|
|
|
{
|
|
|
|
if (i < j)
|
|
|
|
p[i][j] = a[j];
|
|
|
|
if (i == j)
|
|
|
|
p[i][j] = a[j] + da[j];
|
|
|
|
if (i > j)
|
|
|
|
p[i][j] = a[j] - da[j];
|
|
|
|
}
|
2013-05-18 11:54:11 -06:00
|
|
|
}
|
|
|
|
|
|
|
|
return p;
|
|
|
|
}
|