⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mps.c

📁 MSVM
💻 C
字号:
#include <stdio.h>#include <math.h>#include <stdlib.h>long ind1, ind2, ind3, ind4, class1, class2, ind_pattern;double partiel;void gener_NAME(FILE *fdes){fprintf(fdes, "NAME          all\n");}long indice_tampon(long parametre) {long valeur_long;valeur_long = (long) floor(log10((double) parametre));return valeur_long;}void gener_ROWS(FILE *fdes, long nb_cat){fprintf(fdes, "ROWS\n");fprintf(fdes, " N  OBJ\n");for(ind1=1; ind1<nb_cat; ind1++)  fprintf(fdes, " E  CONST%1d\n", ind1);}void gener_COLUMNS(FILE *fdes, long nb_cat, long *y, double **gradient,long chunk_size, long *table_chunk, char *tampon[6]){fprintf(fdes, "COLUMNS\n");for(ind1=1; ind1<=chunk_size; ind1++)  {  ind_pattern = table_chunk[ind1];  class1 = y[ind_pattern];  for(ind2=1; ind2<=nb_cat; ind2++)    if(ind2 != class1)      {      if(gradient[ind1][ind2] >= 0.0)        fprintf(fdes, "    A0%s%d  OBJ       %.6E\n",        tampon[indice_tampon(nb_cat*(ind1-1)+ind2)], 	(nb_cat*(ind1-1)+ind2), gradient[ind1][ind2]);      else        fprintf(fdes, "    A0%s%d  OBJ       %.5E\n",        tampon[indice_tampon(nb_cat*(ind1-1)+ind2)], 	(nb_cat*(ind1-1)+ind2), gradient[ind1][ind2]);      for(ind3=1; ind3<nb_cat; ind3++)        {        partiel = 0.0;        if((class1 == ind3) && (ind2 != ind3))          partiel = -1.0;        if((class1 != ind3) && (ind2 == ind3))          partiel = 1.0;        fprintf(fdes, "    A0%s%d  CONST%1d    %lf\n",        tampon[indice_tampon(nb_cat*(ind1-1)+ind2)], 	(nb_cat*(ind1-1)+ind2), ind3, partiel);        }      }  }}void gener_RHS(FILE *fc, long Q, long *y, long nb_data, long *in_chunk, double **alpha){double partiel;fprintf(fc, "RHS\n");for(ind2=1; ind2<Q; ind2++)  {  partiel = 0.0;  for(ind1=1; ind1<=nb_data; ind1++)    if(in_chunk[ind1] == 0)      {      class1 = y[ind1];      for(ind3=1; ind3<=Q; ind3++)        {         if((class1 == ind2) && (ind3 != ind2))          partiel += alpha[ind1][ind3];        if((class1 != ind2) && (ind3 == ind2))          partiel -= alpha[ind1][ind3];        }      }  if(partiel >= 0.0)    fprintf(fc, "    B         CONST%1d    %.6E\n", ind2, partiel);  else    fprintf(fc, "    B         CONST%1d    %.5E\n", ind2, partiel);  }}void gener_BOUNDS(FILE *fc, long chunk_size, long *table_chunk, long *y,char *tampon[6], long Q, double C){fprintf(fc, "BOUNDS\n");for(ind1=1; ind1<=chunk_size; ind1++)  {  ind_pattern = table_chunk[ind1];  class1 = y[ind_pattern];  for(ind2=1; ind2<=Q; ind2++)    if(ind2 != class1)      {      fprintf(fc, " LO BOUND     A0%s%d  %lf\n",      tampon[indice_tampon(Q*(ind1-1)+ind2)], (Q*(ind1-1)+ind2), 0.0);      fprintf(fc, " UP BOUND     A0%s%d  %.6E\n",      tampon[indice_tampon(Q*(ind1-1)+ind2)], (Q*(ind1-1)+ind2), C);      }  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -