⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mpicxx.h.in

📁 fortran并行计算包
💻 IN
📖 第 1 页 / 共 5 页
字号:
            int i2;             for (i2=0;i2<v1;i2++) {                v2[i2].the_real_request = l2[i2];            }            delete[] l2;        }        return v4!= 0;    }    static int Waitsome( int v1, Request v2[], int * v4, Status v5[] )     {        int v3;        MPI_Request *l2 = new MPI_Request[v1];        MPI_Status *l5 = new MPI_Status[v1];        {             int i2;             for (i2=0;i2<v1;i2++) {                l2[i2] = v2[i2].the_real_request;            }        }        MPIX_CALL( MPI_Waitsome( v1, l2, &v3, v4, l5 ));        {             int i2;             for (i2=0;i2<v1;i2++) {                v2[i2].the_real_request = l2[i2];            }            delete[] l2;        }        {             int i5;             for (i5=0;i5<v1;i5++) {                v5[i5].the_real_status = l5[i5];            }            delete[] l5;        }        return v3;    }    static int Waitsome( int v1, Request v2[], int * v4 )     {        int v3;        MPI_Request *l2 = new MPI_Request[v1];        {             int i2;             for (i2=0;i2<v1;i2++) {                l2[i2] = v2[i2].the_real_request;            }        }        MPIX_CALL( MPI_Waitsome( v1, l2, &v3, v4, MPI_STATUSES_IGNORE ));        {             int i2;             for (i2=0;i2<v1;i2++) {                v2[i2].the_real_request = l2[i2];            }            delete[] l2;        }        return v3;    }    virtual void Free( void )     {        MPIX_CALL( MPI_Request_free( (MPI_Request *) &the_real_request ));    }    static bool Testall( int v1, Request v2[], Status v4[] )     {        int v3;        MPI_Request *l2 = new MPI_Request[v1];        MPI_Status *l4 = new MPI_Status[v1];        {             int i2;             for (i2=0;i2<v1;i2++) {                l2[i2] = v2[i2].the_real_request;            }        }        MPIX_CALL( MPI_Testall( v1, l2, &v3, l4 ));        {             int i2;             for (i2=0;i2<v1;i2++) {                v2[i2].the_real_request = l2[i2];            }            delete[] l2;        }        {             int i4;             for (i4=0;i4<v1;i4++) {                v4[i4].the_real_status = l4[i4];            }            delete[] l4;        }        return v3!= 0;    }    static bool Testall( int v1, Request v2[] )     {        int v3;        MPI_Request *l2 = new MPI_Request[v1];        {             int i2;             for (i2=0;i2<v1;i2++) {                l2[i2] = v2[i2].the_real_request;            }        }        MPIX_CALL( MPI_Testall( v1, l2, &v3, MPI_STATUSES_IGNORE ));        {             int i2;             for (i2=0;i2<v1;i2++) {                v2[i2].the_real_request = l2[i2];            }            delete[] l2;        }        return v3!= 0;    }    virtual void Wait( Status & v2 )     {        MPIX_CALL( MPI_Wait( (MPI_Request *) &the_real_request, (MPI_Status *)&(v2.the_real_status ) ));    }    virtual void Wait( void )     {        MPIX_CALL( MPI_Wait( (MPI_Request *) &the_real_request, MPI_STATUS_IGNORE ));    }    static int Testsome( int v1, Request v2[], int * v4, Status v5[] )     {        int v3;        MPI_Request *l2 = new MPI_Request[v1];        MPI_Status *l5 = new MPI_Status[v1];        {             int i2;             for (i2=0;i2<v1;i2++) {                l2[i2] = v2[i2].the_real_request;            }        }        MPIX_CALL( MPI_Testsome( v1, l2, &v3, v4, l5 ));        {             int i2;             for (i2=0;i2<v1;i2++) {                v2[i2].the_real_request = l2[i2];            }            delete[] l2;        }        {             int i5;             for (i5=0;i5<v1;i5++) {                v5[i5].the_real_status = l5[i5];            }            delete[] l5;        }        return v3;    }    static int Testsome( int v1, Request v2[], int * v4 )     {        int v3;        MPI_Request *l2 = new MPI_Request[v1];        {             int i2;             for (i2=0;i2<v1;i2++) {                l2[i2] = v2[i2].the_real_request;            }        }        MPIX_CALL( MPI_Testsome( v1, l2, &v3, v4, MPI_STATUSES_IGNORE ));        {             int i2;             for (i2=0;i2<v1;i2++) {                v2[i2].the_real_request = l2[i2];            }            delete[] l2;        }        return v3;    }    static void Waitall( int v1, Request v2[], Status v3[] )     {        MPI_Request *l2 = new MPI_Request[v1];        MPI_Status *l3 = new MPI_Status[v1];        {             int i2;             for (i2=0;i2<v1;i2++) {                l2[i2] = v2[i2].the_real_request;            }        }        MPIX_CALL( MPI_Waitall( v1, l2, l3 ));        {             int i2;             for (i2=0;i2<v1;i2++) {                v2[i2].the_real_request = l2[i2];            }            delete[] l2;        }        {             int i3;             for (i3=0;i3<v1;i3++) {                v3[i3].the_real_status = l3[i3];            }            delete[] l3;        }    }    static void Waitall( int v1, Request v2[] )     {        MPI_Request *l2 = new MPI_Request[v1];        {             int i2;             for (i2=0;i2<v1;i2++) {                l2[i2] = v2[i2].the_real_request;            }        }        MPIX_CALL( MPI_Waitall( v1, l2, MPI_STATUSES_IGNORE ));        {             int i2;             for (i2=0;i2<v1;i2++) {                v2[i2].the_real_request = l2[i2];            }            delete[] l2;        }    }    static int Waitany( int v1, Request v2[], Status & v4 )     {        int v3;        MPI_Request *l2 = new MPI_Request[v1];        {             int i2;             for (i2=0;i2<v1;i2++) {                l2[i2] = v2[i2].the_real_request;            }        }        MPIX_CALL( MPI_Waitany( v1, l2, &v3, (MPI_Status *)&(v4.the_real_status ) ));        {             int i2;             for (i2=0;i2<v1;i2++) {                v2[i2].the_real_request = l2[i2];            }            delete[] l2;        }        return v3;    }    static int Waitany( int v1, Request v2[] )     {        int v3;        MPI_Request *l2 = new MPI_Request[v1];        {             int i2;             for (i2=0;i2<v1;i2++) {                l2[i2] = v2[i2].the_real_request;            }        }        MPIX_CALL( MPI_Waitany( v1, l2, &v3, MPI_STATUS_IGNORE ));        {             int i2;             for (i2=0;i2<v1;i2++) {                v2[i2].the_real_request = l2[i2];            }            delete[] l2;        }        return v3;    }    virtual bool Test( Status & v3 )     {        int v2;        MPIX_CALL( MPI_Test( (MPI_Request *) &the_real_request, &v2, (MPI_Status *)&(v3.the_real_status ) ));        return v2!= 0;    }    virtual bool Test( void )     {        int v2;        MPIX_CALL( MPI_Test( (MPI_Request *) &the_real_request, &v2, MPI_STATUS_IGNORE ));        return v2!= 0;    }    virtual void Cancel( void ) const    {        MPIX_CALL( MPI_Cancel( (MPI_Request *) &the_real_request ));    }    virtual bool Get_status( Status & v3 ) const    {        int v2;        MPIX_CALL( MPI_Request_get_status( (MPI_Request) the_real_request, &v2, (MPI_Status *)&(v3.the_real_status ) ));        return v2!= 0;    }    virtual bool Get_status( void ) const    {        int v2;        MPIX_CALL( MPI_Request_get_status( (MPI_Request) the_real_request, &v2, MPI_STATUS_IGNORE ));        return v2!= 0;    }};class Prequest : public Request {  public:    // new/delete    inline Prequest(MPI_Request obj) : Request(obj) {}    inline Prequest(void) : Request() {}    virtual ~Prequest() {}    // copy/assignment    Prequest(const Prequest &obj) : Request(obj) {}    Prequest& operator=(const Prequest &obj) {      the_real_request = obj.the_real_request; return *this; }    // C/C++ cast and assignment    inline operator MPI_Request*() { return &the_real_request; }    inline operator MPI_Request() const { return the_real_request; }    Prequest& operator=(const MPI_Request& obj) {      the_real_request = obj; return *this; }    virtual void Start( void )     {        MPIX_CALL( MPI_Start( (MPI_Request *) &the_real_request ));    }    static void Startall( int v1, Prequest v2[] )     {        MPI_Request *l2 = new MPI_Request[v1];        {             int i2;             for (i2=0;i2<v1;i2++) {                l2[i2] = v2[i2].the_real_request;            }        }        MPIX_CALL( MPI_Startall( v1, l2 ));        {             int i2;             for (i2=0;i2<v1;i2++) {                v2[i2].the_real_request = l2[i2];            }            delete[] l2;        }    }};class Comm  {    friend class Cartcomm;    friend class Intercomm;    friend class Intracomm;    friend class Graphcomm;    friend class Nullcomm;    friend class Datatype;    friend class Win;    friend class File;		  protected:    MPI_Comm the_real_comm;  public:    // new/delete    inline Comm(MPI_Comm obj) : the_real_comm(obj) {}    inline Comm(void) : the_real_comm(MPI_COMM_NULL) {}    virtual ~Comm() {}    // copy/assignment    Comm(const Comm &obj) : the_real_comm(obj.the_real_comm){}    Comm& operator=(const Comm &obj) {      the_real_comm = obj.the_real_comm; return *this; }    // logical    bool operator== (const Comm &obj) {      return (the_real_comm == obj.the_real_comm); }    bool operator!= (const Comm &obj) {      return (the_real_comm != obj.the_real_comm); }    // C/C++ cast and assignment    inline operator MPI_Comm*() { return &the_real_comm; }    inline operator MPI_Comm() const { return the_real_comm; }    Comm& operator=(const MPI_Comm& obj) {      the_real_comm = obj; return *this; }    virtual Group Get_group( void ) const    {        Group v2;        MPIX_CALL( MPI_Comm_group( (MPI_Comm) the_real_comm, &(v2.the_real_group) ));        return v2;    }    virtual int Get_rank( void ) const    {        int v2;        MPIX_CALL( MPI_Comm_rank( (MPI_Comm) the_real_comm, &v2 ));        return v2;    }    virtual Prequest Bsend_init( const void* v1, int v2, const Datatype &v3, int v4, int v5 ) const

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -