Diana
0.8.3
|
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