You can subscribe to this list here.
2010 
_{Jan}

_{Feb}

_{Mar}

_{Apr}

_{May}
(1) 
_{Jun}
(8) 
_{Jul}
(16) 
_{Aug}
(6) 
_{Sep}

_{Oct}

_{Nov}

_{Dec}
(5) 

2011 
_{Jan}
(4) 
_{Feb}
(3) 
_{Mar}
(5) 
_{Apr}

_{May}
(24) 
_{Jun}

_{Jul}
(5) 
_{Aug}
(17) 
_{Sep}

_{Oct}
(6) 
_{Nov}
(9) 
_{Dec}
(8) 
2012 
_{Jan}
(5) 
_{Feb}
(14) 
_{Mar}
(25) 
_{Apr}
(7) 
_{May}
(15) 
_{Jun}
(12) 
_{Jul}
(22) 
_{Aug}
(4) 
_{Sep}
(10) 
_{Oct}
(10) 
_{Nov}
(19) 
_{Dec}
(17) 
2013 
_{Jan}
(8) 
_{Feb}
(10) 
_{Mar}
(16) 
_{Apr}
(3) 
_{May}
(16) 
_{Jun}
(26) 
_{Jul}

_{Aug}
(9) 
_{Sep}

_{Oct}
(8) 
_{Nov}
(17) 
_{Dec}
(2) 
2014 
_{Jan}
(37) 
_{Feb}
(15) 
_{Mar}
(6) 
_{Apr}
(9) 
_{May}
(11) 
_{Jun}
(11) 
_{Jul}
(9) 
_{Aug}
(9) 
_{Sep}
(19) 
_{Oct}
(4) 
_{Nov}
(22) 
_{Dec}
(21) 
2015 
_{Jan}

_{Feb}
(7) 
_{Mar}
(2) 
_{Apr}

_{May}

_{Jun}

_{Jul}

_{Aug}

_{Sep}

_{Oct}

_{Nov}

_{Dec}

S  M  T  W  T  F  S 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17
(2) 
18
(3) 
19
(2) 
20

21

22

23

24

25

26

27

28

29

30






From: Karl Rupp <rupp@iu...>  20120419 12:38:17

Hi Evan, in 1.2.1 there is only an indirect way to achieve this: Instantiate v1, v2 and M as matrices and use the matrix proxies for that. Performance won't be recordbreaking in that case though... Support for combinations of [vectormatrix] [rangesslices] is still experimental in 1.2.x, so please be a bit more patient for the full support in 1.3.0. Best regards, Karli On 04/19/2012 12:52 PM, Evan Bollig wrote: > Hey Karl, > > Lets say I have > > v1.size() = 1024 x 1 > v2.size() = 10 x 1 > M.size() = 50 x 10 > > and I want to do: > > v1 = prod(M, v2); > > I dont want v1 to be wiped out, I just want the subset of 50 elements > to be replaced. Do we have an easy way to do this in ViennaCL? > > in matlab syntax: v1[1:50] = M*v2; > > E > 
From: Evan Bollig <bollig@gm...>  20120419 10:52:36

Hey Karl, Lets say I have v1.size() = 1024 x 1 v2.size() = 10 x 1 M.size() = 50 x 10 and I want to do: v1 = prod(M, v2); I dont want v1 to be wiped out, I just want the subset of 50 elements to be replaced. Do we have an easy way to do this in ViennaCL? in matlab syntax: v1[1:50] = M*v2; E  Evan Bollig bollig@... bollig@... 
From: Karl Rupp <rupp@iu...>  20120418 09:03:08

Hi Evan, > Yeah, I went ahead with a function overload for the two different > types. However, you might also consider adding support for operations > like +=, = etc. > > VCL_VEC_t = VCL_RANGE > > does not work (...) Ouch. You are right, this should definitely work. Thanks for the hint, I'll fix it with 1.3.0 (scheduled for 19/2012). Best regards, Karli 
From: Evan Bollig <bollig@gm...>  20120418 08:52:11

Yeah, I went ahead with a function overload for the two different types. However, you might also consider adding support for operations like +=, = etc. VCL_VEC_t = VCL_RANGE does not work, but this does: linalg::sub(VCL_VEC_t, VCL_RANGE, VCL_VEC_t) Took a little effort to figure that one out. E On Wed, Apr 18, 2012 at 4:32 AM, Karl Rupp <rupp@...> wrote: > Hi Evan, > > as you've correctly noticed, ublas::vector_range and > viennacl::vector_range are only interface compatible, but they cannot be > exchanged with each other. The reason for that is that the operator > overloads in ublas are tailored to the ublas::vector_range type. > > So, what you need is a metafunction returning the correct types > depending on VEC_t. Example: > > namespace result_of > { > template <typename T> > struct vector_range; > > //specialization for ublas > template <typename T> > struct vector_range< ublas::vector<T> > > { > typedef ublas::vector_range< ublas::vector<T> > type; > }; > > //specialization for ViennaCL > template <typename T> > struct vector_range< viennacl::vector<T> > > { > typedef viennacl::vector_range< viennacl::vector<T> > type; > }; > > //similar for range > } > > // application code: > typedef typename result_of::vector_range< VEC_t >::type VectorRangeType; > typedef typename result_of::range< VEC_t >::type RangeType; > > RangeType r(U_exact.size()  RHS.size(),U_exact.size()); > VectorRangeType U_exact_view(U_exact, r); > VEC_t diff = U_approx_out; > diff = U_exact_view; > > > The type deduction is a bit lengthy, but less complicated than it might > appear at first sight. As an alternative, you might also perform the > computations in a separate function and use function overloading with > respect to ublas::vector and viennacl::vector, essentially duplicating > the implementation. > > Best regards, > Karli > > > > On 04/18/2012 01:43 AM, Evan Bollig wrote: >> So a little clarification: >> >> I construct a view like this (VEC_t is ublas::vector<double>): >> >> 1 viennacl::vector_range<VEC_t> U_exact_view(U_exact, >> viennacl::range(U_exact.size()  RHS.size(),U_exact.size())); >> 2 VEC_t diff = U_approx_out; >> 3 diff = U_exact_view; >> >> And the compile error is on line 3. >> >> error: no match for ‘operator=’ in ‘diff = U_exact_view’ >> >> I changed the viennacl::vector_range (and viennacl::range) to the >> ublas namespace and things work. Is there some way to switch the >> namespace based on the template type VEC_t? I'm not a pro with >> templates. >> >> Evan >> >> >> On Tue, Apr 17, 2012 at 7:24 PM, Evan Bollig<bollig@...> wrote: >>> Hey Karl, how do you elegantly handle switching between >>> vcl::vector_range and ublas::vector_range? I see that >>> vcl::vector_range is incompatible with input ublas vectors. Are you >>> going to add some extra code in the next release that is enabled if >>> VIENNACL_HAVE_UBLAS is defined? >>> >>> E >>>  >>> Evan Bollig >>> bollig@... >>> bollig@... >> >> >> > > >  > Better than sec? Nothing is better than sec when it comes to > monitoring Big Data applications. Try Boundary onesecond > resolution app monitoring today. Free. > http://p.sf.net/sfu/Boundarydev2dev > _______________________________________________ > ViennaCLsupport mailing list > ViennaCLsupport@... > https://lists.sourceforge.net/lists/listinfo/viennaclsupport  Evan Bollig bollig@... bollig@... 
From: Karl Rupp <rupp@iu...>  20120418 08:32:36

Hi Evan, as you've correctly noticed, ublas::vector_range and viennacl::vector_range are only interface compatible, but they cannot be exchanged with each other. The reason for that is that the operator overloads in ublas are tailored to the ublas::vector_range type. So, what you need is a metafunction returning the correct types depending on VEC_t. Example: namespace result_of { template <typename T> struct vector_range; //specialization for ublas template <typename T> struct vector_range< ublas::vector<T> > { typedef ublas::vector_range< ublas::vector<T> > type; }; //specialization for ViennaCL template <typename T> struct vector_range< viennacl::vector<T> > { typedef viennacl::vector_range< viennacl::vector<T> > type; }; //similar for range } // application code: typedef typename result_of::vector_range< VEC_t >::type VectorRangeType; typedef typename result_of::range< VEC_t >::type RangeType; RangeType r(U_exact.size()  RHS.size(),U_exact.size()); VectorRangeType U_exact_view(U_exact, r); VEC_t diff = U_approx_out; diff = U_exact_view; The type deduction is a bit lengthy, but less complicated than it might appear at first sight. As an alternative, you might also perform the computations in a separate function and use function overloading with respect to ublas::vector and viennacl::vector, essentially duplicating the implementation. Best regards, Karli On 04/18/2012 01:43 AM, Evan Bollig wrote: > So a little clarification: > > I construct a view like this (VEC_t is ublas::vector<double>): > > 1 viennacl::vector_range<VEC_t> U_exact_view(U_exact, > viennacl::range(U_exact.size()  RHS.size(),U_exact.size())); > 2 VEC_t diff = U_approx_out; > 3 diff = U_exact_view; > > And the compile error is on line 3. > > error: no match for ‘operator=’ in ‘diff = U_exact_view’ > > I changed the viennacl::vector_range (and viennacl::range) to the > ublas namespace and things work. Is there some way to switch the > namespace based on the template type VEC_t? I'm not a pro with > templates. > > Evan > > > On Tue, Apr 17, 2012 at 7:24 PM, Evan Bollig<bollig@...> wrote: >> Hey Karl, how do you elegantly handle switching between >> vcl::vector_range and ublas::vector_range? I see that >> vcl::vector_range is incompatible with input ublas vectors. Are you >> going to add some extra code in the next release that is enabled if >> VIENNACL_HAVE_UBLAS is defined? >> >> E >>  >> Evan Bollig >> bollig@... >> bollig@... > > > 
From: Evan Bollig <bollig@gm...>  20120417 23:44:27

So a little clarification: I construct a view like this (VEC_t is ublas::vector<double>): 1 viennacl::vector_range<VEC_t> U_exact_view(U_exact, viennacl::range(U_exact.size()  RHS.size(),U_exact.size())); 2 VEC_t diff = U_approx_out; 3 diff = U_exact_view; And the compile error is on line 3. error: no match for ‘operator=’ in ‘diff = U_exact_view’ I changed the viennacl::vector_range (and viennacl::range) to the ublas namespace and things work. Is there some way to switch the namespace based on the template type VEC_t? I'm not a pro with templates. Evan On Tue, Apr 17, 2012 at 7:24 PM, Evan Bollig <bollig@...> wrote: > Hey Karl, how do you elegantly handle switching between > vcl::vector_range and ublas::vector_range? I see that > vcl::vector_range is incompatible with input ublas vectors. Are you > going to add some extra code in the next release that is enabled if > VIENNACL_HAVE_UBLAS is defined? > > E >  > Evan Bollig > bollig@... > bollig@...  Evan Bollig bollig@... bollig@... 
From: Evan Bollig <bollig@gm...>  20120417 23:25:22

Hey Karl, how do you elegantly handle switching between vcl::vector_range and ublas::vector_range? I see that vcl::vector_range is incompatible with input ublas vectors. Are you going to add some extra code in the next release that is enabled if VIENNACL_HAVE_UBLAS is defined? E  Evan Bollig bollig@... bollig@... 