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

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

?? mes_solve.h

?? 矩陣運(yùn)算的模板類
?? H
字號(hào):
// -*- c++ -*-
///////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2001 Oh-Wook Kwon, all rights reserved. ohwook@yahoo.com
//
//                          Easy Matrix Template Library
// 
// This Easy Matrix Template Library is provided "as is" without any express 
// or implied warranty of any kind with respect to this software. 
// In particular the authors shall not be liable for any direct, 
// indirect, special, incidental or consequential damages arising 
// in any way from use of the software.
// 
// Everyone is granted permission to copy, modify and redistribute this
// Easy Matrix Template Library, provided:
//  1.  All copies contain this copyright notice.
//  2.  All modified copies shall carry a notice stating who
//      made the last modification and the date of such modification.
//  3.  No charge is made for this software or works derived from it.  
//      This clause shall not be construed as constraining other software
//      distributed on the same medium as this software, nor is a
//      distribution fee considered a charge.
//
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
// Filename: mes_solve.h
// Revision:
//    1. Revised to support complex matrices.
///////////////////////////////////////////////////////////////////////////////

#ifndef	_MES_SOLVE_H_
#define	_MES_SOLVE_H_	

/* Matrix factorisation routines to work with the other matrix files. */
/**************************************************************************
**
** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
**
**			     Meschach Library
** 
** This Meschach Library is provided "as is" without any express 
** or implied warranty of any kind with respect to this software. 
** In particular the authors shall not be liable for any direct, 
** indirect, special, incidental or consequential damages arising 
** in any way from use of the software.
** 
** Everyone is granted permission to copy, modify and redistribute this
** Meschach Library, provided:
**  1.  All copies contain this copyright notice.
**  2.  All modified copies shall carry a notice stating who
**      made the last modification and the date of such modification.
**  3.  No charge is made for this software or works derived from it.  
**      This clause shall not be construed as constraining other software
**      distributed on the same medium as this software, nor is a
**      distribution fee considered a charge.
**
***************************************************************************/


/* Most matrix factorisation routines are in-situ unless otherwise specified */


/* Usolve -- back substitution with optional over-riding diagonal
		-- can be in-situ but doesn't need to be */
template <typename T> int Matrix<T>::mes_Usolve(const Matrix<T>& mat,const Vector<T>& b,Vector<T>& out,double diag)
{
	int	dim, j;
	int	i, i_lim;
	double tiny;
	T	sum;

	dim = local_min(NumRows(mat),NumCols(mat));
	if ( b.Size() < dim )
		mes_error(E_SIZES,"Usolve");
	if ( out.Size() < dim )
		out.Resize(NumCols(mat));

	tiny = 10.0/HUGE_VAL;

	for ( i=dim; i>=1; i-- ){
		if ( !mtl_iszero(b[i]) )
		    break;
		else
		    out[i] = 0.0;
	}
	i_lim = i;

	for ( ; i>=1; i-- ){
		sum = b[i];
		for ( j=i+1; j<=i_lim; j++ )
			sum -= mat[i][j]*out[j];
		if ( diag==0.0 ){
			if ( Abs(mat[i][i]) <= tiny*Abs(sum) )
				mes_error(E_SING,"Usolve");
			else
				out[i] = sum/mat[i][i];
		}
		else
			out[i] = sum/T(diag);
	}

	return 1;
}


/* Lsolve -- forward elimination with (optional) default diagonal value */
template <typename T> int Matrix<T>::mes_Lsolve(const Matrix<T>& mat,const Vector<T>& b,Vector<T>& out,double diag)
{
	int	dim, i, i_lim, j;
	double	tiny;
	T sum;

	dim = local_min(NumRows(mat),NumCols(mat));
	if ( b.Size() < dim )
		mes_error(E_SIZES,"Lsolve");
	if ( out.Size() < dim )
		out.Resize(NumCols(mat));

	for ( i=1; i<=dim; i++ ){
		if ( !mtl_iszero(b[i]) )
		    break;
		else
		    out[i] = 0.0;
	}
	i_lim = i;

	tiny = 10.0/HUGE_VAL;

	for ( ; i<=dim; i++ ){
		sum = b[i];
		for ( j=i_lim; j<i; j++ )
			sum -= mat[i][j]*out[j];
		if ( diag==0.0 ){
			if ( Abs(mat[i][i]) <= tiny*Abs(sum) )
				mes_error(E_SING,"Lsolve");
			else
				out[i] = sum/mat[i][i];
		}
		else
			out[i] = sum/T(diag);
	}

	return 1;
}


/* UTsolve -- forward elimination with (optional) default diagonal value
		using UPPER triangular part of matrix */
template <typename T> int Matrix<T>::mes_UTsolve(const Matrix<T>& U,const Vector<T>& b,Vector<T>& out,double diag)
{
    int	dim, i, i_lim, j;
    double	invdiag, tiny;
	T tmp;
    
    dim = local_min(NumRows(U),NumCols(U));
    if ( b.Size() < dim )
	mes_error(E_SIZES,"UTsolve");
    out.Resize(NumCols(U));

    tiny = 10.0/HUGE_VAL;

    for ( i=1; i<=dim; i++ ){
		if ( !mtl_iszero(b[i]) )
			break;
		else
			out[i] = 0.0;
	}

    i_lim = i;
    if ( &b[1] != &out[1] ){
		out = T();
		for(j=i_lim;j<=dim;j++)
			out[j]=b[j];
    }
	
    if ( diag == 0.0 ){
		for ( ; i<=dim; i++ ){
			tmp = conj(U[i][i]);
			if ( Abs(tmp) <= tiny*Abs(out[i]) )
				mes_error(E_SING,"UTsolve");
			out[i] /= tmp;
			for(j=i+1;j<=dim;j++){
				out[j] += (conj(U[i][j])*(-out[i]));
			}
		}
    }
    else{
		invdiag = 1.0/diag;
		for (    ; i<=dim; i++ ){
			out[i] *= invdiag;
			for(j=i+1;j<=dim;j++){
				out[j] += (conj(U[i][j])*(-out[i]));
			}
		}
    }
    return 1;
}


/* Dsolve -- solves Dx=b where D is the diagonal of A -- may be in-situ */
template <typename T> int Matrix<T>::mes_Dsolve(const Matrix<T>& A,const Vector<T>& b,Vector<T>& x)
{
    int	dim, i;
    double	tiny;
    
    dim = local_min(NumRows(A),NumCols(A));
    if ( b.Size() < dim )
	mes_error(E_SIZES,"Dsolve");
    x.Resize(NumCols(A));

    tiny = 10.0/HUGE_VAL;

    dim = b.Size();
    for ( i=1; i<=dim; i++ )
	if ( Abs(A[i][i]) <= tiny*Abs(b[i]) )
	    mes_error(E_SING,"Dsolve");
	else
	    x[i] = b[i]/A[i][i];
    
    return 1;
}


/* LTsolve -- back substitution with optional over-riding diagonal
		using the LOWER triangular part of matrix
		-- can be in-situ but doesn't need to be */
template <typename T> int Matrix<T>::mes_LTsolve(const Matrix<T>& L,const Vector<T>& b,Vector<T>& out,double diag)
{
    int	dim;
    int		i, i_lim, j;
    double	invdiag, tiny;
	T tmp;
    
    dim = local_min(NumRows(L),NumCols(L));
    if ( b.Size() < dim )
	mes_error(E_SIZES,"LTsolve");
    out.Resize(NumCols(L));

    tiny = 10.0/HUGE_VAL;
    
    for ( i=dim; i>=1; i-- ){
		if ( !mtl_iszero(b[i]) )
			break;
	}
	i_lim = i;
	
	if ( &b[1] != &out[1] ){
		out=T();
		for(j=1;j<=i_lim;j++)
			out[j]=b[j];
	}

	if ( diag == 0.0 ){
		for ( ; i>=1; i-- ){
			tmp = conj(L[i][i]);
			if ( Abs(tmp) <= tiny*Abs(out[i]) )
				mes_error(E_SING,"LTsolve");
			out[i] /= tmp;
			for(j=1;j<i;j++){
				out[j] += conj(L[i][j])*(-out[i]);
			}
		}
	}
	else{
		invdiag = 1.0/diag;
		for ( ; i>=1; i-- ){
			out[i] *= invdiag;
			for(j=1;j<i;j++){
				out[j] += conj(L[i][j])*(-out[i]);
			}
		}
	}
	
	return 1;
}


#endif

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产原创一区二区| 蜜臀99久久精品久久久久久软件| 欧美三片在线视频观看| 国产一区二区三区国产| 亚洲国产裸拍裸体视频在线观看乱了 | 成人av午夜电影| 日韩国产精品91| 亚洲天堂精品在线观看| 精品福利二区三区| 欧美日韩一区在线| 不卡的av在线| 精品一区二区三区免费视频| 一区二区三区欧美亚洲| 亚洲国产精品v| 欧美一级淫片007| 91久久精品一区二区| 国产精品白丝jk黑袜喷水| 亚洲一区二区三区爽爽爽爽爽| 国产亚洲婷婷免费| 日韩美女在线视频 | 欧美午夜精品一区| 国产99一区视频免费| 开心九九激情九九欧美日韩精美视频电影 | 亚洲国产一区二区a毛片| 国产精品色一区二区三区| 精品久久久久久久一区二区蜜臀| 欧美日韩在线不卡| 91视频免费看| av资源网一区| 国产69精品久久777的优势| 紧缚捆绑精品一区二区| 日本免费在线视频不卡一不卡二| 亚洲国产欧美在线| 亚洲小说春色综合另类电影| 一区二区三区四区精品在线视频| 中文字幕一区日韩精品欧美| 国产欧美日韩另类一区| 国产日本欧美一区二区| 久久久精品tv| 中文字幕欧美国产| 日本一区二区成人在线| 国产女同性恋一区二区| 久久精品亚洲麻豆av一区二区| 精品第一国产综合精品aⅴ| 精品免费日韩av| 26uuu色噜噜精品一区二区| 久久亚洲影视婷婷| 国产欧美日韩久久| 国产精品高潮呻吟| 一区二区三区蜜桃网| 夜夜嗨av一区二区三区| 亚洲国产欧美另类丝袜| 日韩一区精品视频| 精品一区二区在线观看| 国产乱码字幕精品高清av| 国产69精品久久久久777| av亚洲产国偷v产偷v自拍| 色老汉一区二区三区| 欧美色倩网站大全免费| 日韩一区二区在线观看视频播放| 日韩视频一区在线观看| 2020日本不卡一区二区视频| 国产精品欧美极品| 亚洲一区二区三区在线看| 热久久久久久久| 国产一区二区不卡在线| 99免费精品在线| 欧美午夜精品久久久久久孕妇| 欧美日韩国产综合一区二区三区 | 国产欧美日韩在线| 亚洲天堂2014| 亚洲大片免费看| 国产做a爰片久久毛片| 成人av综合在线| 欧美三级资源在线| 久久综合给合久久狠狠狠97色69| 国产精品免费av| 污片在线观看一区二区| 国产呦精品一区二区三区网站| 99久久99久久免费精品蜜臀| 欧美美女网站色| 国产欧美一区二区精品忘忧草| 亚洲一区二区在线观看视频| 九九在线精品视频| 色综合av在线| 久久综合一区二区| 亚洲午夜一区二区三区| 国产精品一区二区在线看| 91黄色免费版| 久久久不卡网国产精品二区| 亚洲自拍与偷拍| 国产成人午夜视频| 欧美精品色综合| 国产精品久久久久久久久免费樱桃| 亚洲高清视频的网址| 国产69精品久久久久毛片 | 日韩久久久久久| 中文字幕一区三区| 久久电影国产免费久久电影 | 精品成人佐山爱一区二区| 亚洲精品菠萝久久久久久久| 国产精品自拍一区| 91精品在线观看入口| 国产精品福利影院| 国产一区二区三区免费看| 欧美日韩五月天| 国产精品久久毛片a| 久久se精品一区精品二区| 欧美性生活久久| 亚洲欧美综合在线精品| 国产精品一级黄| 日韩欧美一区电影| 午夜精品久久久久久久99水蜜桃| 不卡一区在线观看| 国产女同互慰高潮91漫画| 精品中文av资源站在线观看| 欧美日本在线观看| 亚洲精品你懂的| 不卡免费追剧大全电视剧网站| 2021中文字幕一区亚洲| 男女男精品网站| 在线播放中文字幕一区| 亚洲午夜成aⅴ人片| 色综合久久久久综合| 国产精品欧美一区喷水| 国产.欧美.日韩| 久久青草国产手机看片福利盒子| 免费欧美日韩国产三级电影| 在线播放日韩导航| 亚洲午夜电影网| 欧美三级电影精品| 亚洲资源在线观看| 欧美在线免费视屏| 亚洲午夜在线观看视频在线| 91黄色激情网站| 亚洲一区二区欧美| 欧美性视频一区二区三区| 亚洲一级片在线观看| 91成人在线观看喷潮| 一区二区不卡在线播放| 欧美伊人精品成人久久综合97 | 欧美军同video69gay| 亚洲国产成人91porn| 欧美精品在线观看播放| 日韩成人一级片| 日韩欧美一区在线观看| 伦理电影国产精品| 欧美精品一区二区三区在线播放| 精品一区二区三区香蕉蜜桃| 久久婷婷色综合| 成人99免费视频| 一区二区在线观看av| 欧美午夜寂寞影院| 麻豆久久久久久久| 国产午夜亚洲精品理论片色戒| 国产传媒久久文化传媒| 1024国产精品| 欧美日韩一区二区在线观看 | 国产成人综合亚洲91猫咪| 亚洲国产成人私人影院tom| av一区二区三区四区| 一区二区三区小说| 欧美一个色资源| 国产成人综合在线| 亚洲精品国产精品乱码不99| 欧美日本视频在线| 国产最新精品精品你懂的| 国产精品电影院| 欧美日精品一区视频| 久久69国产一区二区蜜臀| 国产嫩草影院久久久久| 欧美主播一区二区三区美女| 美女一区二区视频| 中文字幕一区二区三区视频| 欧美色综合网站| 国产一区在线不卡| 亚洲视频电影在线| 日韩一区二区三| 97精品电影院| 另类人妖一区二区av| 自拍偷拍国产精品| 日韩美女视频一区二区在线观看| 成人av网站在线观看免费| 日本视频一区二区三区| 欧美国产综合色视频| 欧美日本在线播放| 成人av网站免费观看| 日韩国产高清影视| 亚洲视频一区二区在线| 日韩欧美成人一区二区| 色一区在线观看| 国产一区二区电影| 日韩精品乱码免费| 亚洲人成亚洲人成在线观看图片| 欧美一个色资源| 在线观看不卡视频| 成人精品视频网站| 久久se这里有精品| 亚洲第一成年网| 亚洲精品视频一区二区|