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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? matrix.c

?? GESPI 2.0動態(tài)系統(tǒng)模擬工具  
?? C
字號:
#include "copyleft.h"

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

/*************************************/
/*                                   */
/*          matrix operations        */
/*                                   */
/*          MICROSOFT C 6.00         */
/*           QuickC/WIN 1.0          */
/*             ULTRIX cc             */
/*              GNU gcc              */
/*                                   */
/*   (include here compilers that    */
/*   compiled GEPASI successfully)   */
/*                                   */
/*************************************/


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

#define NO_MTX_ERROR 0
#define NO_MULT 1
#define NON_INVERT 2
#define OUT_OF_MEM 3
#define NEARLY_ZERO 1e-10
#define TINY 1.0e-20;

/* reset a vector to zero */
void zerovct( double m1[MAX_MET] )
{
 register int i;

 for(i=0; i<MAX_MET; i++)
   m1[i] = 0.0;
}

/* add two vectors */
void addvct( double m1[MAX_MET], double m2[MAX_MET],
             double m3[MAX_MET], int r               )
{
 register int i;

 for(i=0; i<r; i++)
   m3[i] = m1[i] + m2[i];
}

/* add two matrixes */
void addmtx( double m1[], double m2[], double m3[], int r, int c )
{
 register int i,d;

 d = r * c;
 for(i=0; i<d; i++) m3[i]=m1[i]+m2[i];
}

/* add one matrix with a scalar (double) multiple of another */
void addmtxsm( double m1[MAX_MET][MAX_MET], double m2[MAX_MET][MAX_MET],
          double s,                    double m3[MAX_MET][MAX_MET],
          int r, int c                                              )
{
 register int i,j;

 for(i=0; i<r; i++)
  for(j=0;j<c;j++)
   m3[i][j] = m1[i][j] + s * m2[i][j];
}

/* add one vector with a scalar (double) multiple of another */
void addvctsm( double m1[MAX_MET], double m2[MAX_MET],
               double s,           double m3[MAX_MET],
               int r                                   )
{
 register int i;

 for(i=0; i<r; i++)
   m3[i] = m1[i] + s * m2[i];
}

/* (s1 * v1) + (s2 * v2)  - vectors */
void addvctsm2( double m1[MAX_MET], double s1,
                double m2[MAX_MET], double s2,
                double m3[MAX_MET], int r       )
{
 register int i;

 for(i=0; i<r; i++)
   m3[i] = s1 * m1[i] + s2 * m2[i];
}

/* multiply one matrix by another */
void multmtx( double m1[MAX_STEP][MAX_MET], float m2[MAX_MET][MAX_MET],
             double m3[MAX_STEP][MAX_MET], int  r1, int c1, int r2, int c2 )
{
 register int j,k;
          int i;
 double acum;

/* if (c1!=r2) return(NO_MULT); disabled for speed */
 for(i=0;i<r1;i++)
  for(j=0;j<c2;j++)
  {
   acum=0.0;
   for(k=0;k<c1;k++) acum += m1[i][k] * (double) m2[k][j];
   m3[i][j]=acum;
  }
/*  return(NO_MTX_ERROR); disabled for speed */
}

/* scalar (double) multiple of multiplication of one matrix by a vector */
void multmtxvsm( double m1[MAX_MET][MAX_MET], double m2[MAX_MET],
                 double s,                    double m3[MAX_MET],
                 int r1, int c1, int r2                           )
{
 register int i,k;
 double acum;

/* if (c1!=r2) return(NO_MULT); disabled for speed */
 for(i=0;i<r1;i++)
 {
  acum=0.0;
  for(k=0;k<c1;k++) acum+=m1[i][k] * m2[k];
  m3[i] = s * acum;
 }
/*  return(NO_MTX_ERROR); disabled for speed */
}

/* multiplication of one matrix by a vector */
void multmtxv( double m1[MAX_MET][MAX_MET], double m2[MAX_MET],
               double m3[MAX_MET], int r1, int c1, int r2       )
{
 register int i,k;

/* if (c1!=r2) return(NO_MULT); disabled for speed */
 for(i=0;i<r1;i++)
 {
  m3[i] = 0.0;
  for(k=0;k<c1;k++) m3[i] += m1[i][k] * m2[k];
 }
/*  return(NO_MTX_ERROR); disabled for speed */
}

/* mutiply a matrix by a scalar (double) */
void multmtxs( double m1[MAX_MET][MAX_MET], double s,
               double m2[MAX_MET][MAX_MET], int r, int c )
{
 register int i,j;

 for(i=0;i<r;i++)
  for(j=0;j<c;j++)
   m2[i][j] = m1[i][j] * s;
}

void back_sub(double (*a)[MAX_MET][MAX_MET], int n, int *indx, double *b)
{
 int i, ii, ip, j;
 double sum;

 for( i=0, ii=-1; i<n; i++ )
 {
  ip = indx[i];
  sum = b[ip];
  b[ip] = b[i];
  if( ii != -1 )
   for( j=ii; j<i; j++ ) sum -= (*a)[i][j] * b[j];
  else if( sum ) ii = i;
  b[i] = sum;
 }
 for( i=n-1; i>=0; i-- )
 {
  sum = b[i];
  for( j=i+1; j<n; j++ )
   sum -= (*a)[i][j] * b[j];
  b[i] = sum/(*a)[i][i];
 }
}


int lu_decomp(double (*a)[MAX_MET][MAX_MET], int n, int *indx, double *d)
{
 int i, imax, j, k;
 double big, dum, sum, temp;
 double vv[MAX_MET];

 *d = (double) 1;
 for( i=0; i<n; i++ )
 {
  big = (double) 0;
  for( j=0; j<n; j++ )
   if( ( temp = fabs( (*a)[i][j] ) ) > big ) big = temp;
  if( big == (double) 0 )
  {
   return NON_INVERT;
  }
  vv[i] = (double) 1/big;
 }
 for( j=0; j<n; j++ )
 {
  for( i=0; i<j; i++ )
  {
   sum = (*a)[i][j];
   for( k=0; k<i; k++ ) sum -= (*a)[i][k] * (*a)[k][j];
   (*a)[i][j] = sum;
  }
  big = (double) 0;
  for( i=j; i<n; i++ )
  {
   sum = (*a)[i][j];
   for( k=0; k<j; k++ )
    sum -= (*a)[i][k] * (*a)[k][j];
   (*a)[i][j] = sum;
   if( ( dum = vv[i]*fabs( sum ) ) >= big )
   {
    big = dum;
    imax = i;
   }
  }
  if( j != imax )
  {
   for( k=0; k<n; k++ )
   {
    dum = (*a)[imax][k];
    (*a)[imax][k] = (*a)[j][k];
    (*a)[j][k] = dum;
   }
   *d = -(*d);
   vv[imax] = vv[j];
  }
  indx[j] = imax;
  if( (*a)[j][j] == (double) 0 ) (*a)[j][j] = TINY;
  if( j != n-1 )
  {
   dum = (double) 1/((*a)[j][j]);
   for( i=j+1; i<n; i++ ) (*a)[i][j] *= dum;
  }
 }
}


int lu_inverse( double (*m1)[MAX_MET][MAX_MET], double (*m2)[MAX_MET][MAX_MET], int n )
{
 double dt;
 register int i,j;
 double tvv[MAX_MET];
 int emptyrow, mat_indx[MAX_MET];				/* indexes for matrix row permut.	*/

 for( i=0; i<n; i++)
 {
  emptyrow = 1;
  for( j=0; j<n; j++)
   if ( (*m1)[i][j] != (double) 0 ) emptyrow = 0;
  if ( emptyrow ) return NON_INVERT;			/* if one row is empty m1 singular	*/
 }

 if ( !( j = lu_decomp(m1, n, mat_indx, &dt) ) ) return j;
 for( j=0; j<n; j++ )
 {
  for( i=0; i<n; i++ )
   tvv[i] = i==j ? (double) 1 : (double) 0;
  back_sub(m1, n, mat_indx, tvv);
  for( i=0; i<n; i++ ) (*m2)[i][j] = tvv[i];
 }
 return NO_MTX_ERROR;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
五月天中文字幕一区二区| 91精品一区二区三区久久久久久 | 麻豆国产91在线播放| 国产三级久久久| 欧美一区午夜精品| 日本二三区不卡| 成人黄色一级视频| 国产乱子伦视频一区二区三区| 亚洲主播在线观看| 亚洲综合在线免费观看| 日本一区二区免费在线观看视频| 日韩一级成人av| 欧美午夜精品一区二区三区| 色伊人久久综合中文字幕| 暴力调教一区二区三区| 国产suv精品一区二区6| 日本sm残虐另类| 日韩精品国产精品| 看国产成人h片视频| 久久精品国产网站| 韩国毛片一区二区三区| 国产美女视频一区| 99视频有精品| 欧美亚洲国产一区二区三区va| 99精品久久99久久久久| 色综合久久中文字幕| 色综合天天综合网天天狠天天| 91久久国产综合久久| 在线91免费看| 国产日产欧美一区二区视频| 国产精品美女久久久久高潮| 一区二区高清视频在线观看| 丝袜脚交一区二区| 国产成人日日夜夜| 91丨porny丨中文| 91精品国产黑色紧身裤美女| 日本一区二区三区国色天香| 亚洲精品久久嫩草网站秘色| 亚洲高清一区二区三区| 国产伦理精品不卡| 欧美视频一区二区三区四区 | 国产一区亚洲一区| 国产日本欧洲亚洲| 亚洲成av人片www| 国产二区国产一区在线观看| 欧美视频精品在线观看| 国产欧美一区二区三区沐欲| 亚洲超碰精品一区二区| av中文字幕不卡| 亚洲精品一区二区三区精华液| 亚洲欧美日韩精品久久久久| 韩国三级电影一区二区| 制服丝袜中文字幕亚洲| 亚洲精品成人少妇| 丁香婷婷综合五月| 欧美精品一区二区三区蜜臀| 日产国产高清一区二区三区| 色综合天天综合网国产成人综合天| 久久亚洲影视婷婷| 老色鬼精品视频在线观看播放| 欧美欧美午夜aⅴ在线观看| 亚洲日本电影在线| jizz一区二区| 国产精品美女久久久久高潮 | www.亚洲激情.com| 久久影音资源网| 成人午夜av电影| 国产精品久久久久三级| 成人爱爱电影网址| 亚洲色图在线播放| 97久久精品人人做人人爽50路 | 国产精品久久久久久久久免费樱桃| 精品亚洲porn| 久久久国产午夜精品| 国产成人精品影院| 国产精品色呦呦| 91视频一区二区| 亚洲欧美视频一区| 91论坛在线播放| 午夜影视日本亚洲欧洲精品| 欧美久久久影院| 精品一区免费av| 中文字幕精品一区二区三区精品| 高清日韩电视剧大全免费| 日韩免费性生活视频播放| 亚洲成人免费视频| 91精品国产乱码久久蜜臀| 国产二区国产一区在线观看| 中文字幕在线观看一区二区| 欧美性猛交一区二区三区精品| 免费人成网站在线观看欧美高清| 欧美精品一区二区三区视频| 成人免费看片app下载| 亚洲在线视频一区| 精品视频1区2区3区| 极品少妇xxxx精品少妇偷拍| 亚洲视频免费观看| 2021国产精品久久精品| 欧美性猛片aaaaaaa做受| 国产精品123| 日本aⅴ亚洲精品中文乱码| 一区在线中文字幕| 久久精品人人做人人综合| 欧美日韩精品一区二区| 91亚洲国产成人精品一区二区三| 久久国产婷婷国产香蕉| 亚洲国产日韩在线一区模特| 中文在线一区二区| 久久综合精品国产一区二区三区| 欧洲国内综合视频| 99精品视频在线免费观看| 国产精品亚洲第一 | 婷婷国产v国产偷v亚洲高清| 久久久蜜桃精品| 风间由美性色一区二区三区| 亚洲色图视频网| 久久你懂得1024| 日韩欧美国产1| 欧美电影一区二区| 91久久国产综合久久| 丁香一区二区三区| 国产成人精品亚洲日本在线桃色| 日韩精品欧美精品| 一区二区三区在线观看国产| 中文字幕欧美激情| 久久女同性恋中文字幕| 精品国产污网站| 久久无码av三级| 欧美精品一区二区三区蜜桃视频 | 91麻豆精品国产91久久久| 精品视频全国免费看| 欧美不卡激情三级在线观看| 亚洲精品一区在线观看| 国产一区二区精品久久| 欧美影院一区二区三区| 色屁屁一区二区| 在线亚洲一区观看| 欧美精品久久99久久在免费线 | 亚洲国产精品二十页| 国产精品免费av| 一区二区在线观看视频在线观看| 国产精品嫩草久久久久| 中文字幕一区在线观看视频| 亚洲免费在线看| 午夜精品福利在线| 亚洲成人资源在线| 日韩成人一级大片| 国产精品18久久久久久vr | 亚洲成人av中文| 亚洲图片欧美一区| 国产成人亚洲综合a∨婷婷 | 精品久久久久久久久久久久久久久 | 色噜噜狠狠一区二区三区果冻| 92精品国产成人观看免费| 欧美日韩激情在线| 国产区在线观看成人精品| 亚洲欧美在线另类| 亚洲成人免费电影| 国产精品综合av一区二区国产馆| 91麻豆精品在线观看| 精品成a人在线观看| 亚洲美女免费视频| 国产精品99久久久久久有的能看| 欧美日产在线观看| 亚洲欧洲精品一区二区三区| 日本不卡的三区四区五区| 色94色欧美sute亚洲线路一久| 精品日韩一区二区三区| 亚洲午夜精品网| 一本到不卡免费一区二区| 久久久三级国产网站| 免费精品视频在线| 精品视频在线免费看| 综合久久国产九一剧情麻豆| 激情伊人五月天久久综合| 欧美日韩国产首页| 亚洲精品国产无套在线观| 成人app在线| 久久精品人人做人人爽97| 国产成人啪免费观看软件| 久久综合九色综合欧美98| 韩国精品免费视频| 精品欧美乱码久久久久久| 日本不卡在线视频| 日韩欧美在线网站| 久久国产精品色| 久久久久9999亚洲精品| 国产精品性做久久久久久| 中文av一区特黄| 91丨porny丨蝌蚪视频| 亚洲一区二区3| 日韩免费高清电影| 99国产精品视频免费观看| 一区二区三区四区五区视频在线观看| 欧美综合天天夜夜久久| 麻豆91精品91久久久的内涵| 中文字幕欧美激情一区| 欧美日本视频在线| 岛国av在线一区| 日韩福利视频网|