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

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

?? ops.h

?? A C++ class library for scientific computing
?? H
字號:
// -*- C++ -*-/*************************************************************************** * blitz/ops.h           Function objects for math operators * * $Id: ops.h,v 1.7 2004/03/09 21:56:00 julianc Exp $ * * Copyright (C) 1997-2001 Todd Veldhuizen <tveldhui@oonumerics.org> * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * Suggestions:          blitz-dev@oonumerics.org * Bugs:                 blitz-bugs@oonumerics.org * * For more information, please see the Blitz++ Home Page: *    http://oonumerics.org/blitz/ * *************************************************************************/#ifndef BZ_OPS_H#define BZ_OPS_H#include <blitz/blitz.h>#include <blitz/promote.h>#include <blitz/prettyprint.h>BZ_NAMESPACE(blitz)/* * Originally these function objects had no template arguments, e.g. * * struct Add { *     template<typename T_numtype1, typename T_numtype2> *     static inline BZ_PROMOTE(T_numtype1, T_numtype2) *     apply(T_numtype1 a, T_numtype2 b) *     { return a + b; } * }; * * This made for neater expression templates syntax.  However, there are * some situations in which users may want to override type promotion * for certain operations.  For example, in theoretical physics, there * are U1 objects which when multiplied yield U1 objects, but when added * yield a different type.  To allow for this kind of behaviour, function * objects have been changed to take template parameters: * * template<typename T_numtype1, typename T_numtype2> * struct Add { *     typedef BZ_PROMOTE(T_numtype1, T_numtype2) T_numtype; * *     static inline T_numtype apply(T_numtype1 a, T_numtype2 b) *     { return a + b; } * }; * * Type promotion is performed inside the function object.  The expression * templates code always looks inside the function object to determine * the type promotion, e.g. Add<int,float>::T_numtype * * Users are free to specialize these function objects for their own types. */    /* Unary operators that return same type as argument */    #define BZ_DEFINE_UNARY_OP(name,op)                            \template<typename T_numtype1>                                  \struct name {                                                  \    typedef T_numtype1 T_numtype;                              \                                                               \    static inline T_numtype                                    \    apply(T_numtype1 a)                                        \    { return op a; }                                           \							       \    template<typename T1>                                      \    static inline void prettyPrint(BZ_STD_SCOPE(string) &str,  \        prettyPrintFormat& format, const T1& t1)               \    {                                                          \        str += #op;                                            \        t1.prettyPrint(str, format);                           \    }                                                          \};BZ_DEFINE_UNARY_OP(BitwiseNot,~)BZ_DEFINE_UNARY_OP(UnaryPlus,+)BZ_DEFINE_UNARY_OP(UnaryMinus,-)        /* Unary operators that return a specified type */    #define BZ_DEFINE_UNARY_OP_RET(name,op,ret)                    \template<typename T_numtype1>                                  \struct name {                                                  \    typedef ret T_numtype;                                     \    static inline T_numtype                                    \    apply(T_numtype1 a)                                        \    { return op a; }                                           \                                                               \    template<typename T1>                                      \    static inline void prettyPrint(BZ_STD_SCOPE(string) &str,  \        prettyPrintFormat& format, const T1& t1)               \    {                                                          \        str += #op;                                            \        t1.prettyPrint(str, format);                           \    }                                                          \};BZ_DEFINE_UNARY_OP_RET(LogicalNot,!,bool)        /* Binary operators that return type based on type promotion */    #define BZ_DEFINE_BINARY_OP(name,op)                              \template<typename T_numtype1, typename T_numtype2>                \struct name {                                                     \    typedef BZ_PROMOTE(T_numtype1, T_numtype2) T_numtype;         \                                                                  \    static inline T_numtype                                       \    apply(T_numtype1 a, T_numtype2 b)                             \    { return a op b; }                                            \							          \    template<typename T1, typename T2>                            \    static inline void prettyPrint(BZ_STD_SCOPE(string) &str,     \        prettyPrintFormat& format, const T1& t1,                  \        const T2& t2)                                             \    {                                                             \        str += "(";                                               \        t1.prettyPrint(str, format);                              \        str += #op;                                               \        t2.prettyPrint(str, format);                              \        str += ")";                                               \    }                                                             \};BZ_DEFINE_BINARY_OP(Add,+)BZ_DEFINE_BINARY_OP(Subtract,-)BZ_DEFINE_BINARY_OP(Multiply,*)BZ_DEFINE_BINARY_OP(Divide,/)BZ_DEFINE_BINARY_OP(Modulo,%)BZ_DEFINE_BINARY_OP(BitwiseXor,^)BZ_DEFINE_BINARY_OP(BitwiseAnd,&)BZ_DEFINE_BINARY_OP(BitwiseOr,|)BZ_DEFINE_BINARY_OP(ShiftRight,>>)BZ_DEFINE_BINARY_OP(ShiftLeft,<<)        /* Binary operators that return a specified type */    #define BZ_DEFINE_BINARY_OP_RET(name,op,ret)                      \template<typename T_numtype1, typename T_numtype2>                \struct name {                                                     \    typedef ret T_numtype;                                        \    static inline T_numtype                                       \    apply(T_numtype1 a, T_numtype2 b)                             \    { return a op b; }                                            \                                                                  \    template<typename T1, typename T2>                            \    static inline void prettyPrint(BZ_STD_SCOPE(string) &str,     \        prettyPrintFormat& format, const T1& t1,                  \        const T2& t2)                                             \    {                                                             \        str += "(";                                               \        t1.prettyPrint(str, format);                              \        str += #op;                                               \        t2.prettyPrint(str, format);                              \        str += ")";                                               \    }                                                             \};BZ_DEFINE_BINARY_OP_RET(Greater,>,bool)BZ_DEFINE_BINARY_OP_RET(Less,<,bool)BZ_DEFINE_BINARY_OP_RET(GreaterOrEqual,>=,bool)BZ_DEFINE_BINARY_OP_RET(LessOrEqual,<=,bool)BZ_DEFINE_BINARY_OP_RET(Equal,==,bool)BZ_DEFINE_BINARY_OP_RET(NotEqual,!=,bool)BZ_DEFINE_BINARY_OP_RET(LogicalAnd,&&,bool)BZ_DEFINE_BINARY_OP_RET(LogicalOr,||,bool)        BZ_NAMESPACE_END#endif // BZ_OPS_H

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91国偷自产一区二区开放时间| 久久久91精品国产一区二区三区| 日韩一级大片在线| 国产午夜亚洲精品午夜鲁丝片| 亚洲一区二区三区在线看| 国产一区二区在线电影| 欧美二区乱c少妇| 亚洲欧洲国产日韩| 成人午夜精品在线| 欧美v亚洲v综合ⅴ国产v| 一区二区三区鲁丝不卡| 成人午夜又粗又硬又大| 精品嫩草影院久久| 免费黄网站欧美| 欧美日韩综合在线| 亚洲免费观看高清完整版在线观看熊| 狠狠狠色丁香婷婷综合久久五月| 欧美精品一二三区| 午夜久久久久久久久 | 中文字幕亚洲在| 韩国av一区二区三区四区| 正在播放亚洲一区| 丝袜美腿亚洲一区| 色诱亚洲精品久久久久久| 国产精品成人一区二区艾草| 国产成人av电影在线观看| 久久综合精品国产一区二区三区| 日本 国产 欧美色综合| 欧美一区二区在线观看| 视频一区视频二区中文字幕| 欧美色欧美亚洲另类二区| 一区二区三区视频在线看| 欧美日韩亚州综合| 丝袜国产日韩另类美女| 91精品国产高清一区二区三区| 秋霞影院一区二区| 精品国产亚洲在线| 国产精品一区免费在线观看| 国产丝袜在线精品| 94色蜜桃网一区二区三区| 亚洲精品水蜜桃| 欧美日韩精品一区二区天天拍小说| 亚洲va天堂va国产va久| 欧美一区日韩一区| 裸体一区二区三区| 久久久噜噜噜久久人人看| 处破女av一区二区| 亚洲影视在线播放| 欧美电影免费提供在线观看| 国产精品一区二区三区网站| 国产精品国产三级国产aⅴ中文 | 国产精品久久久久婷婷| 色综合久久天天| 日本视频一区二区| 中文字幕免费不卡| 欧美三级视频在线| 激情偷乱视频一区二区三区| 日本一区二区久久| 欧美日韩精品综合在线| 国产又粗又猛又爽又黄91精品| 国产精品乱码一区二三区小蝌蚪| 在线观看日韩电影| 精品午夜一区二区三区在线观看| 国产女人18毛片水真多成人如厕 | 久久精品噜噜噜成人av农村| 国产欧美一区二区精品性色 | 亚洲福利视频一区| 欧美mv日韩mv国产网站app| 成人av中文字幕| 日韩精品1区2区3区| 亚洲国产精品成人久久综合一区| 在线中文字幕一区二区| 麻豆精品视频在线| 一区二区高清在线| 久久久久高清精品| 337p亚洲精品色噜噜噜| 9i在线看片成人免费| 蜜臀精品一区二区三区在线观看| 亚洲国产精品成人综合| 日韩欧美国产精品| 91国产视频在线观看| 国产成人8x视频一区二区| 日韩精品福利网| 亚洲婷婷综合色高清在线| 久久久精品一品道一区| 91麻豆精品国产91久久久久| 白白色 亚洲乱淫| 久久99精品久久久久久动态图| 一区二区三区国产| 国产精品久久久久影院| 精品国产一区久久| 欧美一二三区在线观看| 欧美日韩一卡二卡三卡| 91小视频免费观看| 成人av在线播放网站| 国产一区二区三区国产| 美女视频网站久久| 视频一区二区三区入口| 一卡二卡欧美日韩| 亚洲欧美综合网| 国产精品电影院| 国产精品免费免费| 国产婷婷色一区二区三区 | 亚洲欧美日本韩国| 欧美极品另类videosde| 久久免费精品国产久精品久久久久| 日韩欧美一卡二卡| 日韩免费看的电影| 日韩欧美在线观看一区二区三区| 欧美日本视频在线| 这里只有精品免费| 日韩三级视频在线看| 日韩视频中午一区| 91精品国产91久久久久久一区二区| 欧美日韩精品电影| 91麻豆精品国产自产在线观看一区| 欧美日韩国产精品自在自线| 欧美人与z0zoxxxx视频| 欧美精品1区2区3区| 91超碰这里只有精品国产| 欧美三级资源在线| 69久久夜色精品国产69蝌蚪网| 欧美三级电影在线观看| 欧美顶级少妇做爰| 日韩精品一区二区三区中文不卡| 日韩欧美久久久| 久久亚洲影视婷婷| 中文一区一区三区高中清不卡| 国产欧美日韩不卡| 亚洲欧美欧美一区二区三区| 亚洲成人免费影院| 久久精品国产在热久久| 国产米奇在线777精品观看| 成人综合婷婷国产精品久久蜜臀| av成人免费在线观看| 91福利精品视频| 欧美一区二区福利视频| 26uuu成人网一区二区三区| 欧美激情在线一区二区| 中文字幕亚洲不卡| 亚洲妇女屁股眼交7| 精品在线观看视频| 成人99免费视频| 欧美揉bbbbb揉bbbbb| 精品成a人在线观看| 亚洲色图色小说| 日韩精品亚洲专区| 丁香激情综合国产| 欧美欧美欧美欧美| 亚洲国产精品二十页| 亚洲mv在线观看| 国产宾馆实践打屁股91| 欧美亚洲一区二区在线观看| 欧美电影精品一区二区| 亚洲欧美福利一区二区| 狠狠色狠狠色综合系列| 欧美婷婷六月丁香综合色| 久久久噜噜噜久久中文字幕色伊伊 | 91香蕉视频在线| 日韩欧美在线网站| 一区二区三区产品免费精品久久75| 日韩 欧美一区二区三区| 懂色av中文一区二区三区| 欧美日韩国产美女| 亚洲国产人成综合网站| 国产剧情一区二区三区| 91麻豆精品国产91久久久更新时间 | 亚洲成人av中文| 91丝袜美腿高跟国产极品老师| 精品欧美一区二区三区精品久久| 亚洲天堂成人在线观看| 国产乱子伦一区二区三区国色天香| 色av综合在线| 综合久久国产九一剧情麻豆| 国产一区二区网址| 日韩一区二区三区精品视频| 一区二区三区四区精品在线视频| 国产剧情在线观看一区二区 | 欧美在线免费视屏| 国产蜜臀av在线一区二区三区| 久久99精品国产| 欧美一区二区视频在线观看2020 | 国产在线精品不卡| 91精品国产一区二区人妖| 一区二区三区四区五区视频在线观看| 黄色成人免费在线| 日韩欧美久久久| 免费精品视频在线| 欧美一级片免费看| 日韩高清电影一区| 欧美精品久久99久久在免费线| 亚洲二区在线观看| 337p日本欧洲亚洲大胆精品| 蜜桃久久av一区| 日韩一区二区三区三四区视频在线观看| 亚洲第一成年网| 欧美日本韩国一区二区三区视频 | 亚洲激情网站免费观看| 91猫先生在线| 亚洲欧美日韩国产另类专区|