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

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

?? tnt_vec.h.svn-base

?? fast marching method
?? SVN-BASE
字號:
/*
*
* Template Numerical Toolkit (TNT)
*
* Mathematical and Computational Sciences Division
* National Institute of Technology,
* Gaithersburg, MD USA
*
*
* This software was developed at the National Institute of Standards and
* Technology (NIST) by employees of the Federal Government in the course
* of their official duties. Pursuant to title 17 Section 105 of the
* United States Code, this software is not subject to copyright protection
* and is in the public domain. NIST assumes no responsibility whatsoever for
* its use by other parties, and makes no guarantees, expressed or implied,
* about its quality, reliability, or any other characteristic.
*
*/



#ifndef TNT_VEC_H
#define TNT_VEC_H

#include "tnt_subscript.h"
#include <cstdlib>
#include <cassert>
#include <iostream>
#include <strstream>

namespace TNT
{

/**
 <b>[Deprecatred]</b>  Value-based vector class from pre-1.0
 	TNT version.  Kept here for backward compatiblity, but should
	use the newer TNT::Array1D classes instead.

*/

template <class T>
class Vector 
{


  public:

    typedef Subscript   size_type;
    typedef         T   value_type;
    typedef         T   element_type;
    typedef         T*  pointer;
    typedef         T*  iterator;
    typedef         T&  reference;
    typedef const   T*  const_iterator;
    typedef const   T&  const_reference;

    Subscript lbound() const { return 1;}
 
  protected:
    T* v_;                  
    T* vm1_;        // pointer adjustment for optimzied 1-offset indexing
    Subscript n_;

    // internal helper function to create the array
    // of row pointers

    void initialize(Subscript N)
    {
        // adjust pointers so that they are 1-offset:
        // v_[] is the internal contiguous array, it is still 0-offset
        //
        assert(v_ == NULL);
        v_ = new T[N];
        assert(v_  != NULL);
        vm1_ = v_-1;
        n_ = N;
    }
   
    void copy(const T*  v)
    {
        Subscript N = n_;
        Subscript i;

#ifdef TNT_UNROLL_LOOPS
        Subscript Nmod4 = N & 3;
        Subscript N4 = N - Nmod4;

        for (i=0; i<N4; i+=4)
        {
            v_[i] = v[i];
            v_[i+1] = v[i+1];
            v_[i+2] = v[i+2];
            v_[i+3] = v[i+3];
        }

        for (i=N4; i< N; i++)
            v_[i] = v[i];
#else

        for (i=0; i< N; i++)
            v_[i] = v[i];
#endif      
    }

    void set(const T& val)
    {
        Subscript N = n_;
        Subscript i;

#ifdef TNT_UNROLL_LOOPS
        Subscript Nmod4 = N & 3;
        Subscript N4 = N - Nmod4;

        for (i=0; i<N4; i+=4)
        {
            v_[i] = val;
            v_[i+1] = val;
            v_[i+2] = val;
            v_[i+3] = val; 
        }

        for (i=N4; i< N; i++)
            v_[i] = val;
#else

        for (i=0; i< N; i++)
            v_[i] = val;
        
#endif      
    }
    


    void destroy()
    {     
        /* do nothing, if no memory has been previously allocated */
        if (v_ == NULL) return ;

        /* if we are here, then matrix was previously allocated */
        delete [] (v_);     

        v_ = NULL;
        vm1_ = NULL;
    }


  public:

    // access

    iterator begin() { return v_;}
    iterator end()   { return v_ + n_; }
    const iterator begin() const { return v_;}
    const iterator end() const  { return v_ + n_; }

    // destructor

    ~Vector() 
    {
        destroy();
    }

    // constructors

    Vector() : v_(0), vm1_(0), n_(0)  {};

    Vector(const Vector<T> &A) : v_(0), vm1_(0), n_(0)
    {
        initialize(A.n_);
        copy(A.v_);
    }

    Vector(Subscript N, const T& value = T()) :  v_(0), vm1_(0), n_(0)
    {
        initialize(N);
        set(value);
    }

    Vector(Subscript N, const T* v) :  v_(0), vm1_(0), n_(0)
    {
        initialize(N);
        copy(v);
    }

    Vector(Subscript N, char *s) :  v_(0), vm1_(0), n_(0)
    {
        initialize(N);
        std::istrstream ins(s);

        Subscript i;

        for (i=0; i<N; i++)
                ins >> v_[i];
    }


    // methods
    // 
    Vector<T>& newsize(Subscript N)
    {
        if (n_ == N) return *this;

        destroy();
        initialize(N);

        return *this;
    }


    // assignments
    //
    Vector<T>& operator=(const Vector<T> &A)
    {
        if (v_ == A.v_)
            return *this;

        if (n_ == A.n_)         // no need to re-alloc
            copy(A.v_);

        else
        {
            destroy();
            initialize(A.n_);
            copy(A.v_);
        }

        return *this;
    }
        
    Vector<T>& operator=(const T& scalar)
    { 
        set(scalar);  
        return *this;
    }

    inline Subscript dim() const 
    {
        return  n_; 
    }

    inline Subscript size() const 
    {
        return  n_; 
    }


    inline reference operator()(Subscript i)
    { 
#ifdef TNT_BOUNDS_CHECK
        assert(1<=i);
        assert(i <= n_) ;
#endif
        return vm1_[i]; 
    }

    inline const_reference operator() (Subscript i) const
    {
#ifdef TNT_BOUNDS_CHECK
        assert(1<=i);
        assert(i <= n_) ;
#endif
        return vm1_[i]; 
    }

    inline reference operator[](Subscript i)
    { 
#ifdef TNT_BOUNDS_CHECK
        assert(0<=i);
        assert(i < n_) ;
#endif
        return v_[i]; 
    }

    inline const_reference operator[](Subscript i) const
    {
#ifdef TNT_BOUNDS_CHECK
        assert(0<=i);






        assert(i < n_) ;
#endif
        return v_[i]; 
    }



};


/* ***************************  I/O  ********************************/

template <class T>
std::ostream& operator<<(std::ostream &s, const Vector<T> &A)
{
    Subscript N=A.dim();

    s <<  N << endl;

    for (Subscript i=0; i<N; i++)
        s   << A[i] << " " << endl;
    s << endl;

    return s;
}

template <class T>
std::istream & operator>>(std::istream &s, Vector<T> &A)
{

    Subscript N;

    s >> N;

    if ( !(N == A.size() ))
    {
        A.newsize(N);
    }


    for (Subscript i=0; i<N; i++)
            s >>  A[i];


    return s;
}

// *******************[ basic matrix algorithms ]***************************


template <class T>
Vector<T> operator+(const Vector<T> &A, 
    const Vector<T> &B)
{
    Subscript N = A.dim();

    assert(N==B.dim());

    Vector<T> tmp(N);
    Subscript i;

    for (i=0; i<N; i++)
            tmp[i] = A[i] + B[i];

    return tmp;
}

template <class T>
Vector<T> operator-(const Vector<T> &A, 
    const Vector<T> &B)
{
    Subscript N = A.dim();

    assert(N==B.dim());

    Vector<T> tmp(N);
    Subscript i;

    for (i=0; i<N; i++)
            tmp[i] = A[i] - B[i];

    return tmp;
}

template <class T>
Vector<T> operator*(const Vector<T> &A, 
    const Vector<T> &B)
{
    Subscript N = A.dim();

    assert(N==B.dim());

    Vector<T> tmp(N);
    Subscript i;

    for (i=0; i<N; i++)
            tmp[i] = A[i] * B[i];

    return tmp;
}


template <class T>
T dot_prod(const Vector<T> &A, const Vector<T> &B)
{
    Subscript N = A.dim();
    assert(N == B.dim());

    Subscript i;
    T sum = 0;

    for (i=0; i<N; i++)
        sum += A[i] * B[i];

    return sum;
}

}   /* namespace TNT */

#endif
// TNT_VEC_H

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆一区二区在线| 激情亚洲综合在线| 欧美精品久久99久久在免费线| 亚洲一二三区视频在线观看| 欧美午夜精品久久久久久孕妇 | 白白色亚洲国产精品| 日韩美女精品在线| 一本到一区二区三区| 午夜电影网一区| 日韩一区二区精品| 国产成人综合在线| 亚洲精品视频免费观看| 7777精品伊人久久久大香线蕉 | 久久久久久久久久久久久女国产乱 | 亚洲黄色小说网站| 51精品国自产在线| 国产在线视视频有精品| 中文成人综合网| 欧美系列日韩一区| 久久激五月天综合精品| 国产精品久久久久aaaa樱花| 欧美亚洲日本一区| 国模一区二区三区白浆| 亚洲日本丝袜连裤袜办公室| 欧美一区二区性放荡片| 成人综合日日夜夜| 五月天激情小说综合| 久久精品视频一区二区三区| 色婷婷香蕉在线一区二区| 另类小说综合欧美亚洲| 国产精品初高中害羞小美女文| 欧美性大战久久久| 国产成人一区在线| 亚洲国产成人高清精品| 久久久不卡网国产精品一区| 色噜噜狠狠成人中文综合| 久久精品国产一区二区| 亚洲精品成a人| 欧美精品一区二区高清在线观看| 91视频在线观看| 青青草成人在线观看| 亚洲视频网在线直播| 精品噜噜噜噜久久久久久久久试看| 97久久超碰国产精品| 久久精品久久久精品美女| 亚洲黄色免费电影| 国产日产欧美精品一区二区三区| 欧美日韩国产区一| av高清久久久| 激情偷乱视频一区二区三区| 亚洲综合在线第一页| 久久久午夜精品理论片中文字幕| 91小视频在线| 国产人成亚洲第一网站在线播放| 一区二区久久久久| 欧美性受极品xxxx喷水| 国产激情精品久久久第一区二区 | a美女胸又www黄视频久久| 免费的成人av| 一区二区三区不卡视频| 日本一区二区高清| 欧美成人精品福利| 欧美专区亚洲专区| kk眼镜猥琐国模调教系列一区二区| 免费观看成人鲁鲁鲁鲁鲁视频| 亚洲视频免费观看| 欧美韩日一区二区三区四区| 日韩欧美成人激情| 欧美日本精品一区二区三区| 91视频91自| 成人理论电影网| 理论片日本一区| 亚洲成人动漫在线观看| 亚洲日本va在线观看| 久久综合色婷婷| 91精品国产品国语在线不卡| 日本高清不卡aⅴ免费网站| 成人性色生活片| 激情文学综合丁香| 蜜桃传媒麻豆第一区在线观看| 亚洲午夜电影在线观看| 1区2区3区国产精品| 中文字幕av一区二区三区免费看 | 成人午夜视频网站| 国产一区二区女| 激情六月婷婷久久| 青青草伊人久久| 日韩av二区在线播放| 亚洲国产视频直播| 一区二区三区日韩欧美精品| 最好看的中文字幕久久| 国产精品乱码一区二三区小蝌蚪| 久久婷婷国产综合精品青草| 精品国产一区二区在线观看| 日韩一区二区三| 日韩一区二区在线看片| 91精品国产综合久久精品| 欧美蜜桃一区二区三区| 欧美日韩免费在线视频| 欧美揉bbbbb揉bbbbb| 欧美优质美女网站| 欧美日韩一区 二区 三区 久久精品| 91视频免费看| 在线亚洲人成电影网站色www| 色综合天天性综合| 色先锋aa成人| 91福利区一区二区三区| 欧美午夜免费电影| 欧美久久久久免费| 在线播放91灌醉迷j高跟美女 | 精品欧美乱码久久久久久 | 蜜臀av一区二区在线免费观看| 七七婷婷婷婷精品国产| 奇米777欧美一区二区| 久久国产人妖系列| 激情综合色综合久久| 国产精品一区二区三区乱码| 国产91精品入口| av色综合久久天堂av综合| 色婷婷狠狠综合| 欧美午夜理伦三级在线观看| 欧美高清精品3d| 日韩视频不卡中文| 久久一夜天堂av一区二区三区 | 久久综合久久99| 国产精品无遮挡| 亚洲欧美日韩国产成人精品影院| 亚洲影院在线观看| 免费观看在线色综合| 精品在线一区二区| 丁香婷婷综合激情五月色| 91在线视频观看| 欧美日韩在线播放| 欧美v国产在线一区二区三区| 国产区在线观看成人精品| 综合久久久久综合| 舔着乳尖日韩一区| 国产精品影视在线观看| 菠萝蜜视频在线观看一区| 欧美亚洲精品一区| 精品日韩欧美在线| 中文字幕日韩av资源站| 亚欧色一区w666天堂| 国产在线精品国自产拍免费| 91丨九色丨国产丨porny| 欧美日韩视频在线第一区| 欧美videos大乳护士334| 中文无字幕一区二区三区 | 一区二区三区**美女毛片| 日韩电影免费一区| 丁香激情综合国产| 在线观看国产精品网站| 日韩你懂的电影在线观看| 国产精品久久久久影视| 丝袜美腿亚洲色图| 国产成人免费xxxxxxxx| 欧美亚洲动漫精品| 久久婷婷久久一区二区三区| 亚洲狼人国产精品| 久久99国产精品免费| 色8久久精品久久久久久蜜| 日韩欧美高清一区| 亚洲免费观看高清完整版在线| 免费日本视频一区| 99免费精品视频| 91麻豆精品国产无毒不卡在线观看| 国产三级精品视频| 午夜精品一区二区三区电影天堂| 国产精品亚洲第一区在线暖暖韩国 | 国产不卡一区视频| 欧美日韩一级二级| 国产午夜精品在线观看| 亚洲va天堂va国产va久| 国产成人在线免费| 欧美精品v日韩精品v韩国精品v| 欧美极品美女视频| 日本不卡一二三区黄网| 91浏览器在线视频| 久久久久久久久久久久久女国产乱| 一区二区三区中文字幕| 国产一区二区三区视频在线播放| 欧美亚洲禁片免费| 国产精品久久久久影院亚瑟| 另类小说欧美激情| 欧美午夜影院一区| 国产精品国产三级国产aⅴ入口| 男女激情视频一区| 日本久久一区二区三区| 国产日本欧美一区二区| 奇米影视一区二区三区| 欧美午夜电影网| 中文字幕一区二区视频| 国产一区在线观看视频| 欧美久久一区二区| 樱桃国产成人精品视频| 成人的网站免费观看| 久久久综合激的五月天| 免费观看在线综合色| 欧美日韩一级片网站| 亚洲黄网站在线观看|