00001
00002
00003
00004
00005 #ifndef SPSEQQPGENFACTORY
00006 #define SPSEQQPGENFACTORY
00007
00008 #include "QpGen.h"
00009 class QpGenData;
00010 class QpGenVars;
00011
00012 class QpGenSparseSeq : public QpGen {
00013 protected:
00014 int nnzQ;
00015 int nnzA;
00016 int nnzC;
00017 public:
00018 QpGenSparseSeq( int nx_, int my_, int mz_,
00019 int nnzQ_, int nnzA_, int nnzC_ )
00020 : QpGen( nx_, my_, mz_ ),
00021 nnzQ(nnzQ_), nnzA(nnzA_), nnzC(nnzC_)
00022 {}
00023
00024 Data * makeData();
00025 Data * makeData( double c[],
00026 int krowQ[], int jcolQ[], double dQ[],
00027 double xlow[], char ixlow[],
00028 double xupp[], char ixupp[],
00029 int krowA[], int jcolA[], double dA[],
00030 double b[],
00031 int krowC[], int jcolC[], double dC[],
00032 double clow[], char iclow[],
00033 double cupp[], char icupp[] );
00034
00035 void makeRandomData( QpGenData *& prob, QpGenVars *& soln );
00036
00037 Data *
00038 copyDataFromSparseTriple( double c[],
00039 int irowQ[], int nnzQ, int jcolQ[], double dQ[],
00040 double xlow[], char ixlow[],
00041 double xupp[], char ixupp[],
00042 int irowA[], int nnzA, int jcolA[], double dA[],
00043 double bA[],
00044 int irowC[], int nnzC, int jcolC[], double dC[],
00045 double clow[], char iclow[],
00046 double cupp[], char icupp[] );
00047
00048 virtual void joinRHS( OoqpVector& rhs_in, OoqpVector& rhs1_in,
00049 OoqpVector& rhs2_in, OoqpVector& rhs3_in );
00050
00051 virtual void separateVars( OoqpVector& x_in, OoqpVector& y_in,
00052 OoqpVector& z_in, OoqpVector& vars_in );
00053 };
00054
00055 #endif