Diana  0.8.3
IDistributedMatrix.hpp
00001 /* -----------------------------------------------------------------------------
00002  *  Diana process modelling, simulation and analysis software
00003  *  Copyright (c) 2005, Michael Krasnyk
00004  *  All rights reserved.
00005  *
00006  *  This file is a part of Diana process modelling, simulation and analysis software
00007  *
00008  *  Diana is free software; you can redistribute it and/or modify it
00009  *  under the terms of the GNU General Public License as published
00010  *  by the Free Software Foundation (see accompanying file LICENSE)
00011  * -----------------------------------------------------------------------------
00012  *  $Id$
00013  * -----------------------------------------------------------------------------
00014  *  Description:
00015  */
00016 
00017  
00018  
00019 #ifndef __IDISTRIBUTED_MATRIX_HPP
00020 #define __IDISTRIBUTED_MATRIX_HPP
00021 
00022 #include <CapeOpen.hpp> 
00023 
00024 class IDistributedMatrix 
00025 {
00026 public:
00027 //    virtual void InsertElement( CapeLong nRow, CapeLong nCol, CapeDouble dValue ) = 0;
00028    virtual void SetValue( const Common::Types::CapeLong nRow, 
00029       const Common::Types::CapeLong nCol, const Common::Types::CapeDouble dValue )
00030       throw (Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument) = 0;
00031  
00032    virtual CapeDouble GetValue( const Common::Types::CapeLong nRow,
00033       const Common::Types::CapeLong nCol ) 
00034       throw (Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument) = 0;
00035 
00036    virtual CapeLong GetNumRows() = 0;
00037 
00038    virtual CapeLong GetNumCols() = 0;
00039 
00040    virtual void BroadcastValue( const Common::Types::CapeLong lSourcePE, 
00041       const Common::Types::CapeLong lRow, const Common::Types::CapeLong lCol )
00042       throw (Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument) = 0;
00043 
00044    virtual void BroadcastColumn( const Common::Types::CapeLong lSourcePE, 
00045       const Common::Types::CapeLong lCol ) 
00046       throw (Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument) = 0;
00047 
00048    virtual Common::Types::CapeArrayDouble 
00049       GetColumn( const Common::Types::CapeLong lCol )
00050       throw (Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument) = 0;
00051 
00052    virtual void Show( const Common::Types::CapeLong lProcID = 0 ) = 0;
00053 
00054    virtual void Clear() = 0;
00055 };
00056 #endif