Boost logo

Boost Users :

From: chun ping wang (cablepuff_at_[hidden])
Date: 2006-04-01 12:02:10


2 question:
Hi, i would like to know are there any easy way to do multi_array math
operation on ones of same dimension and size..

#include <boost/multi_array.hpp>

template <class T, int N>
typename DimArray<T, N>::ndimarr array_minus(const typename DimArray<T,
N>::ndimarr& A,
                                    const typename DimArray<T, N>::ndimarr&
B)
{
    typename DimArray<T, N>::ndimarr temp(A);
    typedef typename DimArray<T, N>::size TDS;
    const TDS outer_sz(A.size());
    const TDS inner_sz(A[0].size());
    for (TDS i = 0; i < outer_sz; ++i)
    {
        for (TDS j = 0; j < inner_sz; ++j)
        {
            temp[i][j] -= B[i][j];
        }
    }
    return temp;
}

question 2: How do you find a index of an item where a specify condition is
true.

given this...

template <class T>
   bool isSafe(const typename DimArray<T, 2>::ndimarr& MAX,
               const typename DimArray<T, 2>::ndimarr& Alloc,
               const typename DimArray<T, 2>::ndimarr& Need,
               const typename DimArray<T, 1>::ndimarr& Available)
{
    typename DimArray<T, 1>::ndimarr Work(Available);
    typename DimArray<bool, 1>::ndimarr
Finish(boost::extents[Need[0].size()]);
    typedef typename DimArray<T, 2>::size TDS;
    const TDS outer_sz(MAX.size());
    const TDS inner_sz(MAX[0].size());
    for(TDS i = 0; i < inner_sz; ++i)
                 Finish[i] = false;
}

Is there a effective and safe way to find i such that Need[i] <= Work other
than a loop.

Thanks for the help.



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net