[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Toon-members] Dynamic Matrix allocation in an iteration loop?
From: |
Gerhard Reitmayr |
Subject: |
Re: [Toon-members] Dynamic Matrix allocation in an iteration loop? |
Date: |
Tue, 23 Mar 2010 15:30:01 +0100 |
Hi,
if you are worried about the overhead of memory allocation, then you could
allocate a large matrix and then use for example a dynamical slice inside the
loop. or make a reference matrix which you point at some preallocated array of
data. small dynamic matrices might be allocated on the stack anyway, so not
real overhead compared to a static one...
using a resizable will not change as it will also allocate on resize (I think ?)
I would ask myself first, if the allocation is really a bottle neck. Always
measure first, before attempting optimization! it might not really make a
difference in your program. So profile your function, program etc. first and
see if this allocation takes an inappropriate amount of time.
cheers,
Gerhard
On 22 Mar 2010, at 18:25, ETH wrote:
> Hello TooN Members
>
> I have a simple question:
> I have an iteration loop in which my matrix e.g A is always size dependend,
> for example in one iteration its 9 x 3 in another its 9x16 and so on.
> The problem facing TooN is that I always make new dynamical Matrices for this
> purpose but this is probably stupid because I always allocate new memory in
> each iteration?
>
> Is there an efficient way to reduce allocation here? By a Matrix <...,...,
> Reference>?
> Or should I use Resizable Matrices?
>
> Can someone help?
>
> Thanks a lot!!
>
>
>
>
> Am 20.03.2010 um 17:01 schrieb address@hidden:
>
>> Send Toon-members mailing list submissions to
>> address@hidden
>>
>> To subscribe or unsubscribe via the World Wide Web, visit
>> http://lists.nongnu.org/mailman/listinfo/toon-members
>> or, via email, send a message with subject or body 'help' to
>> address@hidden
>>
>> You can reach the person managing the list at
>> address@hidden
>>
>> When replying, please edit your Subject line so it is more specific
>> than "Re: Contents of Toon-members digest..."
>>
>>
>> Today's Topics:
>>
>> 1. NEW(with code) : Implementation of BaseClass with virtual
>> template functions with TOON (Gabriel N?tzi)
>>
>>
>> ----------------------------------------------------------------------
>>
>> Message: 1
>> Date: Fri, 19 Mar 2010 17:46:08 +0100
>> From: Gabriel N?tzi <address@hidden>
>> Subject: [Toon-members] NEW(with code) : Implementation of BaseClass
>> with virtual template functions with TOON
>> To: address@hidden
>> Message-ID: <address@hidden>
>> Content-Type: text/plain; charset="us-ascii"
>>
>> (Here again because source code was missing)
>>
>> Hello all,
>>
>> I have a basic question where I am completely stuck with TooN:
>> I dont know how to realize this:
>>
>> I have a DynamicSystem Class which describes a Dynamical System with
>> template parameter <int NDOF>
>> I would like to have a Class Solver which has a reference to an instance of
>> DynamicSystem.
>> The solver should be able to call several virtual functions from
>> DynamicSystem. (subClass could be a Ball or a Car or what ever :-))
>> The main problem is that this main functions take Vectors/Matrices as Input
>> and give Vector and Matrices as Output back (depending on NDOF)
>> but when I want to properly define such a function in TOON i need templates
>> (to be able to input also slices and so on....)
>>
>> like
>>
>> template<typename BaseM, typename BaseV>
>> Matrix<3,3,double,BaseM> get_M (double t, Vector<3,double, BaseV > x ){
>> // some code
>> }
>>
>> But the problem is that in C++ we can not define templates as virtual
>> functions......
>> (SEE ATTACHED SIMPLE CODE!!)
>>
>> HOW DO I SOLVE this Problem with TooN?
>> How should I structure my Classes? Would be very helpful if someone can
>> quickly append the changes in the attached source code (ITS SIMPLE :-))!
>>
>> Thank you very much for your HELP!!
>>
>>
>> =========================================CODE======================================================
>>
>>
>>
>> #include <iostream>
>> #include <TooN/TooN.h>
>>
>> using namespace std;
>> using namespace TooN;
>>
>> template<int NDOF>
>> class DynamicSystem {
>>
>> public:
>> DynamicSystem(){
>> };
>> ~DynamicSystem(){
>> };
>>
>> virtual Matrix<NDOF,NDOF> get_M(double t, Vector<NDOF> x)=0;
>>
>> private:
>> int ndof;
>>
>> };
>>
>> class WoodPecker : public DynamicSystem<3>{
>> public:
>> WoodPecker(){
>> };
>> ~WoodPecker(){
>> };
>>
>> Matrix<3,3> get_M(double t, Vector<3> x){
>> Matrix<3,3> A =Identity;
>> return A;
>> }
>> };
>>
>> template<int NDOF>
>> class Solver{
>> public:
>> Solver(DynamicSystem<NDOF> & myref): ref(myref) {
>>
>> };
>> ~Solver(){
>> };
>> DynamicSystem<NDOF> & ref;
>>
>> void dosome(){
>> Vector<> a(NDOF);
>> cout << ref.get_M(0,a) <<endl; //works
>> // cout << ref.get_M(0,a.slice<>(1,NDOF)) <<endl; // does not
>> work..... (shit) :-)
>> }
>> };
>> -------------- next part --------------
>> An HTML attachment was scrubbed...
>> URL:
>> http://lists.gnu.org/pipermail/toon-members/attachments/20100319/5dfd8339/attachment.html
>>
>> ------------------------------
>>
>> _______________________________________________
>> Toon-members mailing list
>> address@hidden
>> http://lists.nongnu.org/mailman/listinfo/toon-members
>>
>>
>> End of Toon-members Digest, Vol 43, Issue 2
>> *******************************************
>
>
>
> _______________________________________________
> Toon-members mailing list
> address@hidden
> http://lists.nongnu.org/mailman/listinfo/toon-members
--
Gerhard Reitmayr
Institute for Computer Graphics and Vision
http://www.icg.tugraz.at/Members/gerhard
tel: ++43 316 873 5082