亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? gauss.c

?? GESPI 2.0動態系統模擬工具  
?? C
字號:
#include "copyleft.h"

/*
    GEPASI - a simulator of metabolic pathways and other dynamical systems
    Copyright (C) 1989, 1992  Pedro Mendes
*/

/*************************************/
/*                                   */
/*   reduction of stoicheiometry by  */
/*   the Gauss method with row and   */
/*           column switches         */
/*                                   */
/*          MICROSOFT C 6.00         */
/*           QuickC/WIN 1.0          */
/*             ULTRIX cc             */
/*              GNU gcc              */
/*                                   */
/*   (include here compilers that    */
/*   compiled GEPASI successfully)   */
/*                                   */
/*************************************/


#include <stdio.h>
#include <math.h>
#include <string.h>
#include "globals.h"
#include "globvar.h"

#define ALMOST_ZERO 1.0e-7

void rowsw( int r1, int r2, int c )
{
 int j;
 float dummy;
 double dumb;
 int dum;

 for(j=0;j<c;j++)
 {
  dum         = stoi[r1][j];                      /* switch rows in stoi and */
  stoi[r1][j] = stoi[r2][j];
  stoi[r2][j] = dum;
  dummy        = rstoi[r1][j];                    /* switch rows in rstoi &  */
  rstoi[r1][j] = rstoi[r2][j];
  rstoi[r2][j] = dummy;
 }
 dumb = x[r1];                                    /* switch rows in x and    */
 x[r1] = x[r2];
 x[r2] = dumb;
 dumb = x0[r1];                                   /* switch rows in x0  and  */
 x0[r1] = x0[r2];
 x0[r2] = dumb;
 j      = ur[r1];                                 /* switch rows in ur too   */
 ur[r1] = ur[r2];
 ur[r2] = j;
 /*strcpy( buff, metname[r1] );
 strcpy( metname[r1], metname[r2] );
 strcpy( metname[r2], buff );*/
}

void colsw( int c1, int c2, int r )
{
 int j;
 float dummy;
 int dum;

 for( j=0; j<r; j++ )
 {
  dum         = stoi[j][c1];                      /* switch cols in stoi and */
  stoi[j][c1] = stoi[j][c2];
  stoi[j][c2] = dum;
  dummy        = rstoi[j][c1];                    /* switch cols in rstoi &  */
  rstoi[j][c1] = rstoi[j][c2];
  rstoi[j][c2] = dummy;
 }
 j      = uc[c1];                                 /* switch cols in uc too   */
 uc[c1] = uc[c2];
 uc[c2] = j;
/* strcpy( buff, stepname[c1] );
 strcpy( stepname[c1], stepname[c2] );
 strcpy( stepname[c2], buff );*/
}

void rowsw_m( int r1, int r2, int c )             /* switch rows in ml       */
{
 int j;
 float dummy;

 for(j=0;j<c;j++)
 {
  dummy     = ml[r1][j];
  ml[r1][j] = ml[r2][j];
  ml[r2][j] = dummy;
 }
}

void colsw_m( int c1, int c2, int r )             /* switch cols in ml       */
{
 int j;
 float dummy;

 for(j=0;j<r;j++)
 {
  dummy     = ml[j][c1];
  ml[j][c1] = ml[j][c2];
  ml[j][c2] = dummy;
 }
}

int emptyrow( int rw, int nsteps)
{
 int j, ct;                              /* ct counts entries != 0  */

 for( ct=0, j=0; j<nsteps; j++)
  if ( fabs( rstoi[rw][j] ) > ALMOST_ZERO ) ct++;
 return ( ct );
}

void invml11( void )
{                                                 /* as ml is lower triangul.*/
 int i,j,k; 		                              /* inverting is simply to  */
 float acum;                                      /* forward-substitute with */
                                                  /* the identity matrix     */
 for(i=0;i<nmetab; i++) ml[i][i] = 1 ;
 for( j=0; j<indmet; j++)
  for( k=0; k<indmet; k++)
  {
   for( acum=0, i=0; i<k; i++ )
    acum += ml[k][i] * lm[i][j];
   lm[k][j] = ( (k==j) ? (float) 1.0 : - acum ) / ml[k][k];
  }
}

void calc_ld( void )
{
 int i,j,k;

 for( i=indmet; i<nmetab; i++ )                   /* first calculate L0      */
  for( j=0; j<indmet; j++ )                       /* which is                */
  {
   ld[i][j] = 0;
   for( k=0; k<indmet; k++ )                      /*                 -1      */
    ld[i][j] += ml[i][k] * lm[k][j];              /* L0 = L21 * (L11)        */
  }
 for( i=indmet; i<nmetab; i++ )                   /* Now map the lin. dep.   */
 {
  for( j=0; j<indmet; j++ )                       /* which is                */
   ld[i][j] = -ld[i][j];                          /* -L0                     */
  for( j=indmet; j<nmetab; j++ )                  /* concateneted with the   */
   ld[i][j] = (i == j)
    ? (float) 1.0 : (float) 0.0;                  /* m0 -> m part of Id.     */
 }
}

void init_moiety( void )
{
 int i,j;

 for( i=indmet; i<nmetab; i++)
 {
  moiety[i] = (float) 0.0;
  for( j=0; j<nmetab; j++ )
   moiety[i] += ld[i][j] * x0[j];
 }
}

void lindep( void )
{
 invml11();                                       /* invert ml11 into lm     */
 calc_ld();                                       /* calculate L2 * -L1'     */
}

int gauss( void )
{
 int i, j, k, flag;
 float m;

 for( k=0; k<nsteps+1; k++)
 {
  for( flag=0, i=k; i<nmetab; i++ )
   if( fabs(rstoi[i][k]) > ALMOST_ZERO )
   {
    flag = 1;
    break;                                        /* suitable divisor        */
   }
  if ( flag )
  {
   if ( i != k )
   {
    rowsw( k, i, nsteps );                        /* switch row k with i     */
    rowsw_m( k, i, nmetab );
   }
  }
  else
  {
   do
   {
    for( j=k+1; j<nsteps; j++ )
     if( fabs(rstoi[k][j]) > ALMOST_ZERO )
     {
      flag = 1;
      break;                                      /* suitable value          */
     }
    if ( flag && ( j != k ) )
    {
     colsw( j, k, nmetab );                       /* switch col j with k     */
     colsw_m( j, k, nmetab );
    }
    if( !flag )
    {
     for( i=0; i<nmetab; i++ )                    /* get rid of empty rows   */
     {
      if ( ! emptyrow( i, nsteps ) )              /* all entries in row = 0  */
      {
       for( j=i+1; j<nmetab; j++)
        if ( emptyrow( j, nsteps ) )              /* j = first non-empty row */
        {
         rowsw( i, j, nsteps );                   /* switch row i with row j */
         rowsw_m( i, j, nmetab );
         flag = 2;
         break;
        }
      }
     }
    }
    if ( !flag )
    {
     indmet = k;                                  /* # of independent metabs */
     return(-1);                                  /* flag conservation & ret */
    }
   }
   while( flag != 1 );
  }
  for( i=k+1; i<nmetab; i++)
  {
   if ( fabs(rstoi[k][k]) > ALMOST_ZERO )
   {
    m =  rstoi[i][k] / rstoi[k][k];               /* calculate the divisor   */
    ml[i][k] = m;                                 /* and keep its symmetric  */
    if( m != (float) 0.0 )
    {
     for( j=k; j<nsteps; j++ )                    /* reduce another row      */
     {                                           
      rstoi[i][j] = rstoi[i][j] - m * rstoi[k][j];
      if( fabs(rstoi[i][j]) <= ALMOST_ZERO )      /* then make it a true zero*/
       rstoi[i][j] = (float) 0.0;
     }
    }
   }
  }
 }
 return 0;                                        /* job done: no lin. dep.! */
}

void int_ord( void )                       /* start by putting all internal  */
{                                          /* metabolites as the first       */
 int i,j,k;                                /* m rows in stoi                 */

 for( i=0, k=0; i<totmet; i++ )
  if (intmet[i])
  {
   ur[k] = i;                              /* record the old number          */
   for( j=0; j<nsteps; j++ )
    stoi[k][j] = stoiu[i][j];
   k++;
  }
 nmetab = k;                               /* the no.of internal metabolites */
}

void ext_ord( void )                       /* now put the declared exernal   */
{                                          /* metabolites in the last rows   */
 int i,j,k;                                /* of stoi                        */

 k = nmetab;
 for( i=0; i<totmet; i++ )
  if (!intmet[i])
  {
   ur[k] = i;                              /* record the index       */
   for( j=0; j<nsteps; j++ )
    stoi[k][j] = stoiu[i][j];
   k++;
  }
 nextmet = totmet - nmetab;                /* the no.of external metabolites */
 for(i=0; i<nmetab; i++) intmet[i] = 1;    /* set intmet according with the  */
 for(; i<totmet; i++) intmet[i] = 0;       /* mapping						 */
}

void initreds( void )
{
 int i,j;

 for( i=0; i<nmetab; i++)
 {
  for( j=0; j<nsteps; j++)
   rstoi[i][j] = (float) stoi[i][j];              /* init rstoi from stoi    */
  for( j=0; j<nmetab; j++)
   ml[i][j] = (float) 0;                          /* init matrix of multipl. */
 }
}

void more_ext( void)
{
 int i;

 for( i=0; i<nmetab; i++ )                        /* get rid of empty rows   */
 {                                                /* which are xtrnl metabs. */
  if ( ! emptyrow( i, nsteps ) )                  /* all entries in row = 0  */
  {
   rowsw( i, nmetab-1, nsteps );                  /* put row at the end      */
   intmet[ur[nmetab]] = 0;                        /* signal this 1 is xtrnl! */
   nmetab--;                                      /* signal 1 less int. met. */
   nextmet++;                                     /* and 1 more extern. met. */
  }
 }
}

void virt_step( void )
{
 int i, j, ct;

 for( i=0; i<nsteps; i++ )                        /* get rid of empty cols   */
 {                                                /* which are 0 rate steps  */
  for( ct=0, j=0; j<nmetab; j++)
   if ( fabs( rstoi[j][i] ) > ALMOST_ZERO ) ct++; /* ct counts entries != 0  */
  if ( !ct )                                      /* all entries in col = 0  */
  {
   colsw( i, nsteps-1, nmetab );                  /* put col at the end      */
   nsteps--;                                      /* one less active step    */
  }
 }
}

void reduce( void )
{
 int i;

 for( i=0; i<nsteps; i++) uc[i] = i;       /* setup reaction perm. vector    */
 int_ord();                                /* put int. metabs. at the beggin.*/
 ext_ord();                                /* put ext. metabs. at the end    */
 initreds();                               /* reset rstoi and ml             */
 more_ext();                               /* spot implicit external metabs. */
 virt_step();                              /* spot virtual steps             */
 gauss();                                  /* stoi -> rstoi by gaussian red. */
 for( i=0; i<nsteps; i++ )                 /* kinetu -> kinetype (using uc)  */
  kinetype[i] = kinetu[uc[i]];
  
 depmet = nmetab - indmet;                 /* depmet = no. of dep. metabs.   */
 lindep();                                 /* work out linear dependencies   */
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人欧美一区二区三区| 欧美韩国日本不卡| 欧美日韩精品一区二区三区| 欧美男女性生活在线直播观看| 91精品国产综合久久精品app| 日韩美女主播在线视频一区二区三区| 伊人色综合久久天天人手人婷| 亚洲精品视频免费观看| 伦理电影国产精品| 91碰在线视频| 亚洲精品一区二区三区香蕉| 亚洲桃色在线一区| 美腿丝袜亚洲色图| 在线欧美日韩精品| 国产欧美日韩在线看| 成人一区二区视频| 精品国产免费久久| 免费一级片91| 欧美高清性hdvideosex| 一区二区视频在线看| 大尺度一区二区| 精品国产免费一区二区三区香蕉| 亚洲一区电影777| 色呦呦网站一区| 亚洲天堂成人在线观看| 成人黄色在线网站| 国产精品久久久久影院亚瑟| 成人午夜免费电影| 欧美国产日韩一二三区| 成人伦理片在线| 久久色.com| 国产麻豆视频精品| 国产精品蜜臀av| 91色乱码一区二区三区| 尤物av一区二区| 欧美日韩国产综合一区二区| 亚洲国产精品久久久男人的天堂| 欧美日韩成人一区二区| 欧美bbbbb| 国产精品三级av在线播放| jlzzjlzz亚洲女人18| 中文字幕一区二区三区四区不卡 | 福利一区在线观看| 中文字幕一区日韩精品欧美| 日本韩国一区二区三区| 性感美女久久精品| 国产午夜精品美女毛片视频| 91在线丨porny丨国产| 视频在线观看一区二区三区| 久久久五月婷婷| 欧美在线999| 春色校园综合激情亚洲| 亚洲丰满少妇videoshd| 国产亚洲精品久| 欧美日韩在线直播| 国产一区二区中文字幕| 亚洲视频精选在线| 欧美zozozo| 在线精品视频免费观看| 国产一区不卡在线| 免费观看在线色综合| 一区二区三区在线视频观看58 | 亚洲观看高清完整版在线观看| 精品国产91洋老外米糕| 欧美亚洲国产一卡| 91影院在线观看| 国产91精品久久久久久久网曝门| 奇米色一区二区| 丝袜国产日韩另类美女| 亚洲精品福利视频网站| 日韩一区在线看| 国产精品麻豆99久久久久久| 欧美xxxxx裸体时装秀| 91精品国产日韩91久久久久久| 成人av在线看| 91在线视频网址| 91香蕉视频在线| 欧日韩精品视频| 欧美最猛性xxxxx直播| 91浏览器在线视频| 在线观看区一区二| 欧美军同video69gay| 精品日韩在线一区| 久久女同互慰一区二区三区| 久久久精品免费免费| 国产精品每日更新| 1区2区3区欧美| 亚洲精品免费视频| 五月天网站亚洲| 午夜激情综合网| 蜜桃视频在线观看一区二区| 黑人巨大精品欧美黑白配亚洲| av在线播放成人| 欧美性猛片xxxx免费看久爱| 欧美一区二区三区婷婷月色| 精品国产百合女同互慰| 亚洲日本在线视频观看| 午夜视频一区二区| 成人网在线播放| 91精品国产综合久久婷婷香蕉| 国产亚洲1区2区3区| 亚洲一区在线观看免费 | 欧美高清性hdvideosex| 久久久综合视频| 午夜精品一区二区三区免费视频| 国产乱人伦偷精品视频不卡| 欧美日韩精品系列| 国产精品国产馆在线真实露脸| 国产成人亚洲综合a∨猫咪| 欧美日韩一卡二卡三卡 | 免费看欧美美女黄的网站| 不卡一区二区中文字幕| 精品国产第一区二区三区观看体验| 午夜精品久久久久久久99樱桃| 成人激情开心网| 国产日韩欧美亚洲| 精品在线播放免费| 日韩一区二区三区电影在线观看 | 欧美高清激情brazzers| 一区二区三区美女| 91黄色激情网站| 亚洲夂夂婷婷色拍ww47| 欧美亚一区二区| 亚洲综合久久久久| 在线一区二区三区四区五区| 一区二区在线免费观看| 在线观看亚洲一区| 亚洲一区二区成人在线观看| 在线观看免费视频综合| 亚洲一区在线观看网站| 欧美女孩性生活视频| 亚洲超碰精品一区二区| 欧美精品亚洲一区二区在线播放| 午夜精品视频一区| 欧美一区二区三区人| 午夜不卡av免费| 欧美视频日韩视频在线观看| 日韩高清不卡一区二区| 精品粉嫩超白一线天av| 成人综合婷婷国产精品久久蜜臀| 亚洲婷婷综合色高清在线| 欧美日精品一区视频| 日韩成人精品在线观看| 久久久久久97三级| 色天天综合久久久久综合片| 午夜久久久久久电影| 国产精品系列在线| 欧美美女网站色| www.爱久久.com| 极品少妇xxxx精品少妇偷拍| 国产精品久久久久久久久晋中 | 亚洲风情在线资源站| 欧美国产日韩a欧美在线观看| 欧美日韩国产精品成人| 成人久久视频在线观看| 丝袜国产日韩另类美女| 亚洲视频在线观看三级| 欧美变态tickle挠乳网站| 欧美午夜寂寞影院| 成人福利视频网站| 精品一区二区三区的国产在线播放| 亚洲男人的天堂在线aⅴ视频| 精品国产乱码久久久久久牛牛| 欧美久久久一区| 欧美专区亚洲专区| 一本久道中文字幕精品亚洲嫩| 成人国产免费视频| 国产成人精品免费一区二区| 黑人巨大精品欧美一区| 久久爱另类一区二区小说| 蜜桃视频在线观看一区二区| 亚洲午夜精品网| 亚洲人成精品久久久久久| 一区二区三区在线视频观看| 亚洲影院久久精品| 亚洲无线码一区二区三区| 亚洲不卡在线观看| 美女视频第一区二区三区免费观看网站 | 欧美熟乱第一页| 91精品婷婷国产综合久久竹菊| 在线播放欧美女士性生活| 777午夜精品免费视频| 日韩精品一区二区三区中文不卡 | 日本亚洲免费观看| 国产亚洲人成网站| 成人欧美一区二区三区| 狠狠色丁香婷综合久久| 99re这里都是精品| 国产精品午夜久久| 另类专区欧美蜜桃臀第一页| 9久草视频在线视频精品| 色婷婷久久久久swag精品| 欧美一区二区视频在线观看2022 | 久久亚洲欧美国产精品乐播| 国产欧美日本一区二区三区| 亚洲欧美一区二区三区久本道91 | 91在线一区二区| 欧美成人在线直播| 中文字幕在线观看不卡视频| 亚洲人成精品久久久久久|