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

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

?? tensor.h

?? Tensor類
?? H
字號(hào):
/* Tensor.H                                 Version from  05/02/97 17:07PM  */
/* Contents ----------------------------------------------------------------**
**									                                                        **
**  Class 	Tensor                                                          **
**																		                                      **
**--------------------------------------------------------------------------**
**                                                                          **
** COPYRIGHT (C) 1997 by Melnikov Mike. All rights reserved.                **
** For any comments or suggestions mailto:zmike@andnow.ru                   **
**                                                                          **
** -------------------------------------------------------------------------*/

#ifndef _TENSOR_
#define _TENSOR_

#include <string>
#include <OSTREAM>
#include <assert.h>

//-------------------------------------------------------------------------------------
// ----- TensorFormatString                  ------------------------------------------
//-------------------------------------------------------------------------------------

class TensorFormatString
{
  public:
    TensorFormatString() : m_beginSymbol('1') { m_format[0] ='\0';}
    TensorFormatString( const TensorFormatString&  str ) : m_beginSymbol('1') { operator=(str);}
    TensorFormatString( const char*  str ) : m_beginSymbol('1') { operator=(str);}

    virtual ~TensorFormatString()  {}

    operator const char*()  const                               { return getFormat(); }  

    TensorFormatString&     operator =( TensorFormatString& str);
    TensorFormatString&     operator =( const char* str );

    TensorFormatString&     operator =( const int  m_value );

    const char*             getFormat() const{ return m_format; } 

    operator char() const   {return m_format[0]; } 

    const int operator []   ( int index ) const    { return m_format[index] - m_beginSymbol; }

    operator bool() const   { return strlen(m_format)>0 ? true : false; }

    int                     search(const char  symbol);

    void                    setValue( int index, int m_value ) { assert(m_format);m_format[index] = m_beginSymbol + m_value;}

    int                     getm_beginSymbol()          { return m_beginSymbol-'0'; }
    void                    setm_beginSymbol(int begin) { m_beginSymbol = begin + '0'; }
    int                     isdigit(int index) { return ::isdigit(m_format[index]); }

  private:

    char                    m_format[10];
    char                    m_beginSymbol;
};

//-------------------------------------------------------------------------------------
// ----- TensorObject  - public for Tensors--------------------------------------------
//-------------------------------------------------------------------------------------
class  TensorObject
{
public:
    virtual TensorObject& operator [] ( const char *str ) = 0 ;
    virtual TensorObject& operator [] ( TensorFormatString& str ) = 0;

    virtual const TensorFormatString& getFormat() { return m_format;}

    int                               getLevel()  { return m_level;}

    virtual void                      printf(std::ostream &op,char* str=NULL) = 0;

    virtual void                      internal_add(TensorObject& o1,TensorObject& o2) {assert(false);}

protected:
    int                               m_level;
    TensorFormatString                m_format;
};

//-------------------------------------------------------------------------------------
// ----- Template class Tensor        -------------------------------------------------
//-------------------------------------------------------------------------------------
template <class Element>
class Tensor : public TensorObject{

  public :
      Tensor(int n=2);
      Tensor(const Tensor<Element>& t);
      ~Tensor();

      Tensor<Element>& operator = ( const Tensor<Element>& );

      const Element& operator [] ( int index ) const { return m_items[index]; }
      Element&       operator [] ( int index )       { return m_items[index]; }

      // return element at first place of str and remember leave part in m_format of this element
      // if this is not a digit remember whole string
      virtual TensorObject& operator [] ( const char *str ) { return operator[](TensorFormatString(str));}
      virtual TensorObject& operator [] ( TensorFormatString& m_format );


      Tensor<Element>& operator~(); // clear - make it "zero"

      Tensor<Element>  operator+ ( const Tensor<Element>& t);
      Tensor<Element>  operator- ( const Tensor<Element>& t);
      Tensor<Element>& operator-=( const Tensor<Element>& t);
      Tensor<Element>& operator+=( const Tensor<Element>& t);
      Tensor<Element>& operator*=( double num);
      Tensor<Element>  operator* ( double num);

      int                       getDim() const { return m_dim;}

      Tensor<Element>&          averaging(Tensor<Element>* ten,double *r,int count );

      virtual void              printf(std::ostream &op,char* str=NULL);

  public:
      void                      init(int n);

  private:

      Element                   *m_items;
      int                       m_dim;
};

//-------------------------------------------------------------------------------------
// ----- TensorElement - T m_value -------------------------------------------------
//-------------------------------------------------------------------------------------
typedef double _Double;

template<typename T = _Double>
class TensorElement : public TensorObject
{
public:
    TensorElement()  : m_value(0) { m_level=0;}
    TensorElement(T val)  : m_value(val) { m_level=0;}


    operator T() const                                     { return m_value;}

    virtual TensorElement& operator = ( const T& val)      { m_value = val; return *this;}

    TensorElement& operator = ( const TensorElement& ten)  { m_value = T(ten);return *this;}

    virtual TensorObject&  operator [] ( const char *str ) {return *this;}
    virtual TensorObject&  operator [] (TensorFormatString& m_format ) {return *this; }

    TensorObject&   operator~() { m_value = T(); return *this;}

    virtual void    printf(std::ostream &op,char* str)      { op << m_value << ' '; }

    virtual void    internal_add(TensorObject& o1,TensorObject& o2) {m_value = m_value + 
                                                                              ((TensorElement<T>&)o1) * ((TensorElement<T>&)o2);
                                                                      m_value=m_value;}
    
    TensorElement&  operator+=( const T& t) {m_value += t; return *this;}

public:
    void                          init(int n) {}

private:
    T                             m_value;
};




typedef Tensor<TensorElement<> >  Tensor1;
typedef Tensor<Tensor1>        Tensor2;
typedef Tensor<Tensor2>        Tensor3;
typedef Tensor<Tensor3>        Tensor4;

template <class Element>
Tensor<Element>::Tensor(int n)
{
    init(n);
}

template <class Element>
void Tensor<Element>::init(int n)
{
    m_items = new Element[n];
    m_level = m_items[0].getLevel() + 1;
    m_dim = n;
    for( int i=0; i<n; i++)
        m_items[i].init(n);
}

template <class Element>
Tensor<Element>::Tensor(const Tensor<Element>& t)
{
    //*************
    //if(!m_items)
    {
        m_items = new Element[2];             // it is not that I wanted
        m_level = m_items[0].getLevel() + 1;
        m_dim = 2;
    }
    //************

    operator=(t);
}

template <class Element>
Tensor<Element>::~Tensor()
{
    delete [] m_items;
}

template <class Element>
Tensor<Element>& Tensor<Element>::operator~()
{
    for(int i=0; i < getDim(); i++)
        ~(m_items[i]);
    return *this;
}

template <class Element>
Tensor<Element>& Tensor<Element>::operator = ( const Tensor<Element>& t )
{
    for(int i=0; i < t.m_dim; i++)
        m_items[i] = t[i];
    return *this;
}

template <class Element>
TensorObject& Tensor<Element>::operator [] ( TensorFormatString& str )
{
    if( str.isdigit(0) )
    {
        int iItem = str[0];
        return m_items[iItem][str.getFormat() + 1];
    }
    else
    {
        m_format = str;
        return *this;
    }
}

template <class Element>
Tensor<Element> Tensor<Element>::operator+ ( const Tensor<Element>& t)
{
    Tensor<Element> tmp;
    for(int i=0; i < getDim(); i++)
        tmp[i] = m_items[i] + t[i];
    return tmp;
}

template <class Element>
Tensor<Element> Tensor<Element>::operator- ( const Tensor<Element>& t)
{
    Tensor<Element> tmp;
    for(int i=0; i < getDim(); i++)
        tmp[i] = m_items[i] - t[i];
    return tmp;
}

template <class Element>
Tensor<Element>& Tensor<Element>::operator-= ( const Tensor<Element>& t)
{
    for(int i=0; i < t.m_dim; i++)
        m_items[i] -= t[i];
    return *this;
}

template <class Element>
Tensor<Element>& Tensor<Element>::operator+= ( const Tensor<Element>& t)
{
    for(int i=0; i < t.m_dim; i++)
        m_items[i] += t[i];
    return *this;
}

template <class Element>
Tensor<Element>& Tensor<Element>::operator*= ( double num)
{
    for(int i=0; i < getDim(); i++)
        m_items[i] *= num;
    return *this;
}

template <class Element>
Tensor<Element> Tensor<Element>::operator* (double num)
{
    Tensor<Element> tmp;
    for(int i=0; i < getDim(); i++)
        tmp[i] = m_items[i] * num;
    return tmp;
}

Tensor4 inverse(Tensor4& t);

template <class Element>
void Tensor<Element>::printf(std::ostream &op,char* str)
{
    if( str ) 
      op << str;
	
    TensorFormatString oldFormat(getFormat());
    //fprintf(op,"\r\n%s\r\n",(const char*)m_format);

    for(int i=0; i < getDim(); i++)
    {
      oldFormat = i;
  		operator[](oldFormat).printf(op);
    }
    op << '\n';
}

template <class Element>
Tensor<Element>& Tensor<Element>::averaging(Tensor<Element>* ten,double *r,int count )
{
    ~(*this);
    for(int i=0;i<count;i++)
        *this += ten[i] * r[i];
	return *this;
}

// the main reason I've wrote this code
void convolution( TensorObject& result, TensorObject& tenA, TensorObject& tenB );

#endif

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品婷婷伊人一区三区三| 制服丝袜中文字幕亚洲| 午夜一区二区三区视频| 2020国产精品| 欧美日韩高清不卡| bt欧美亚洲午夜电影天堂| 日本一不卡视频| 亚洲人成7777| 亚洲国产电影在线观看| 日韩你懂的在线观看| 欧美亚洲动漫另类| 99国产精品久久久久久久久久久| 免费观看在线综合| 亚洲成av人片在线| 亚洲另类在线一区| 欧美激情中文不卡| 久久久国际精品| 欧美成人一区二区三区在线观看 | 久久超级碰视频| 亚洲高清久久久| 亚洲视频在线观看一区| 国产精品无遮挡| 国产三区在线成人av| 精品国产乱码久久| 日韩亚洲欧美中文三级| 欧美精品在欧美一区二区少妇| 91啦中文在线观看| 9i看片成人免费高清| 成人在线视频首页| 丁香婷婷综合色啪| 高清beeg欧美| 成人开心网精品视频| 国产精品99久| 国产成人激情av| 国产99久久久国产精品免费看| 国产一区二区不卡老阿姨| 久久99精品国产91久久来源| 美美哒免费高清在线观看视频一区二区| 亚洲一级不卡视频| 亚洲电影视频在线| 五月天网站亚洲| 日本成人在线网站| 精品一区二区三区视频在线观看 | 国产成人av电影在线| 国产精品系列在线播放| 国产电影精品久久禁18| 高清在线观看日韩| 99久久久免费精品国产一区二区| 91在线视频免费91| 欧美在线视频全部完| 欧美日韩国产bt| 精品久久久久久久人人人人传媒 | 亚洲天天做日日做天天谢日日欢 | 国内成人精品2018免费看| 国产福利不卡视频| 97se亚洲国产综合自在线观| 一本在线高清不卡dvd| 在线精品国精品国产尤物884a| 欧美性受xxxx| 日韩欧美一区二区久久婷婷| 久久网站热最新地址| 国产精品毛片高清在线完整版| 久久精品国产**网站演员| 国产高清不卡二三区| 日本乱码高清不卡字幕| 欧美精品日韩综合在线| 2020国产精品自拍| 亚洲三级视频在线观看| 日本欧美一区二区三区乱码| 国产成人免费视频网站高清观看视频 | 久久久蜜桃精品| 自拍视频在线观看一区二区| 午夜精品在线视频一区| 国产在线一区观看| 一本色道久久综合亚洲aⅴ蜜桃| 欧美精品久久久久久久久老牛影院 | 久久成人久久鬼色| 色综合色狠狠天天综合色| 3d成人h动漫网站入口| 国产无人区一区二区三区| 亚洲国产三级在线| 国产成人午夜精品5599| 欧美日韩国产一级二级| 中文字幕精品三区| 视频一区二区中文字幕| 99视频有精品| 这里只有精品视频在线观看| 国产精品色一区二区三区| 亚洲h在线观看| av高清久久久| 欧美成人免费网站| 亚洲国产美女搞黄色| 成人美女视频在线看| 日韩一区二区三区电影在线观看 | av网站免费线看精品| 日韩视频在线你懂得| 一区二区在线观看不卡| 国产成人免费在线视频| 日韩亚洲欧美在线| 亚洲高清免费视频| 一本大道久久精品懂色aⅴ| 国产清纯白嫩初高生在线观看91| 五月激情六月综合| 91视视频在线观看入口直接观看www | 欧洲精品中文字幕| 国产精品不卡一区二区三区| 久久99精品国产麻豆不卡| 欧美日韩成人综合| 亚洲欧洲日韩一区二区三区| 国产一区二区三区四区五区美女 | 久久亚洲综合色| 日韩高清电影一区| 欧美午夜一区二区三区| 亚洲女与黑人做爰| 91玉足脚交白嫩脚丫在线播放| 久久久一区二区| 精品一区二区三区视频在线观看 | 亚洲综合清纯丝袜自拍| 不卡影院免费观看| 中文字幕第一区二区| 国产91在线|亚洲| 久久久久久久电影| 国产一区二区三区免费看| 欧美成人欧美edvon| 美女一区二区在线观看| 日韩午夜激情免费电影| 欧美男人的天堂一二区| 亚洲成人一区在线| 欧美日韩五月天| 亚洲午夜精品一区二区三区他趣| 色嗨嗨av一区二区三区| 亚洲精品你懂的| 欧美亚洲综合色| 亚洲一区在线观看免费| 欧美日本一道本在线视频| 亚洲第一福利一区| 欧美日韩aaa| 毛片不卡一区二区| 精品国内二区三区| 国产成人aaaa| 亚洲日穴在线视频| 欧美性猛交xxxx乱大交退制版| 一区二区三区在线影院| 欧美性受xxxx黑人xyx性爽| 性做久久久久久久久| 国产电影一区二区三区| 中文字幕一区二区三中文字幕| 91无套直看片红桃| 亚洲国产成人tv| 日韩欧美一二三区| 国产成人在线免费观看| 椎名由奈av一区二区三区| 欧美日韩一区二区在线观看视频 | 日韩精品一区二区三区四区| 国产麻豆精品95视频| 亚洲少妇30p| 欧美久久久久中文字幕| 久久69国产一区二区蜜臀| 欧美激情一区二区三区四区| 91免费观看国产| 视频在线在亚洲| 久久婷婷国产综合国色天香| 成人小视频免费观看| 一区二区三区av电影| 欧美一区二区三区视频在线观看| 国产乱子轮精品视频| 国产精品不卡在线| 在线成人小视频| 福利91精品一区二区三区| 亚洲精品久久嫩草网站秘色| 日韩女优av电影| 99国产精品视频免费观看| 日本欧美一区二区在线观看| 中文字幕av不卡| 欧美久久久久久久久| 国产老肥熟一区二区三区| 亚洲综合久久久| www久久久久| 欧美日韩精品一区二区在线播放| 久久66热re国产| 亚洲伊人色欲综合网| 久久久久久久久久久久电影| 91豆麻精品91久久久久久| 国内一区二区在线| 亚洲777理论| 国产精品伦理一区二区| 91精品欧美综合在线观看最新| 粗大黑人巨茎大战欧美成人| 五月激情丁香一区二区三区| 国产精品福利电影一区二区三区四区 | 在线欧美一区二区| 国产一区 二区| 无吗不卡中文字幕| 亚洲欧美偷拍三级| 久久亚洲一区二区三区明星换脸| 欧美羞羞免费网站| 国产精品热久久久久夜色精品三区| 欧美午夜精品一区二区三区 | 成人免费va视频| 激情五月激情综合网|