Jitse Niesen
cb9f3685d3
Move implementation of coeff() &c to Matrix/Array evaluator.
2012-07-05 11:09:42 +01:00
Jitse Niesen
746378868a
Implement A.noalias() = B * C without temporaries
...
* Wrap expression inside EvalToTemp in copy_using_evaluators() if we
assume aliasing for that expression (that is, for products)
* Remove temporary kludge of evaluating expression to temporary in
AllAtOnce traversal
* Implement EvalToTemp expression object
2012-06-29 13:54:09 +01:00
Jitse Niesen
d0b873822f
Make product eval-at-once.
...
* Make product EvalAtOnce in cases OuterProduct, GemmProduct and
GemvProduct
* Ensure that product evaluators are nested inside EvalToTemp
evaluator
* As temporary kludge, evaluate expression to temporary in AllAtOnce
traversal and pass expression operator to evalTo()
2012-06-29 13:49:25 +01:00
Jitse Niesen
2393ceb380
Implement eval-at-once in evaluator.
...
- Add evaluator_traits with HasEvalTo flag, which is true if evaluator
has evalTo() function.
- Add AllAtOnce traversal, which calls evalTo() in evaluator.
- If source evaluator in copy_using_evaluator has HasEvalTo set, then
use AllAtOnce traversal.
2012-06-29 13:32:12 +01:00
Jitse Niesen
069fd0e4be
Move (part of) evaluation of products to evaluator objects.
...
* Copy implementation from CoeffBasedProduct.
* Copy implementation from GeneralProduct in InnerProduct case.
* For GeneralProduct in other cases, call the evalTo() member function with
expression objects in constructor of evaluator.
2012-06-29 13:07:21 +01:00
Jitse Niesen
8994f9962a
Fix bug in {Matrix,Array}Wrapper evaluator
2012-06-24 17:35:27 +01:00
Gael Guennebaud
cc6dd55028
put the resurected files into the Eigen namespace
2012-06-22 16:35:20 +02:00
Gael Guennebaud
5fae6c7848
resurrect expression evaluators
2012-06-22 09:39:35 +02:00
Jitse Niesen
3db6455896
Remove evaluators for 2.1 release.
...
We plan to re-instate them when we branch 2.2 (see bug #388 ).
2011-12-14 21:23:43 +00:00
Jitse Niesen
9a06055870
Store light-weight objects in evaluators by value.
...
This resolves failure in unit test caused by dying temporaries.
2011-05-13 14:05:59 +01:00
Jitse Niesen
06fb7cf470
Implement compound assignments using evaluator of SelfCwiseBinaryOp.
2011-04-28 16:57:35 +01:00
Jitse Niesen
3b60d2dbc4
Implement swap using evaluators.
2011-04-28 15:52:15 +01:00
Jitse Niesen
2d11041e24
Use copyCoeff/copyPacket in copy_using_evaluator.
2011-04-22 22:36:45 +01:00
Jitse Niesen
3457965bf5
Implement evaluator for Diagonal.
2011-04-22 22:36:45 +01:00
Jitse Niesen
f924722f3b
Implement evaluators for Reverse.
2011-04-22 22:36:45 +01:00
Jitse Niesen
bb2d70d211
Implement evaluators for ArrayWrapper and MatrixWrapper.
2011-04-22 22:36:45 +01:00
Jitse Niesen
e654405900
Implement unrolling in copy_using_evaluator() .
2011-04-13 11:49:48 +01:00
Jitse Niesen
7e86324898
Implement evaluator for PartialReduxExpr as a dumb wrapper.
2011-04-13 09:49:10 +01:00
Jitse Niesen
11164830f5
Implement evaluator for Replicate.
2011-04-12 22:54:31 +01:00
Jitse Niesen
12a30a982f
Implement evaluator for Select.
2011-04-12 22:34:16 +01:00
Jitse Niesen
eae5a6bb09
Decouple Cwise*Op evaluators from expression objects
2011-04-05 18:30:51 +01:00
Jitse Niesen
11ea81858a
Implement evaluator for CwiseUnaryView
2011-04-05 18:20:43 +01:00
Jitse Niesen
cca7b146a2
Implement evaluator for Map
2011-04-05 18:15:59 +01:00
Jitse Niesen
ae06b8af5c
Make evaluators for Matrix and Array inherit from common base class.
...
This gets rid of some code duplication.
2011-04-04 15:35:14 +01:00
Jitse Niesen
afdd26f229
Do some of the actual work in evaluator for Block.
...
Also, add simple accessor methods to Block expression class.
2011-04-04 13:44:50 +01:00
Jitse Niesen
d90a8ee8bd
Evaluators: add Block evaluator as dumb wrapper, add slice vectorization.
2011-03-31 13:50:52 +01:00
Jitse Niesen
8175fe43e0
Evaluators: Make inner vectorization more similar to default traversal.
2011-03-28 21:29:47 +01:00
Jitse Niesen
b175bc464f
Evaluators: Implement linear traversal, better testing.
2011-03-27 22:08:48 +01:00
Jitse Niesen
1b17a674dd
Evaluators: Implement inner vectorization.
...
The implementation is minimal (I only wrote the functions called by
the unit test) and ugly (lots of copy and pasting).
2011-03-27 13:49:15 +01:00
Jitse Niesen
5c204d1ff7
Evaluators: Implement LinearVectorizedTraversal, packet ops in evaluators.
2011-03-25 16:30:41 +00:00
Gael Guennebaud
42bc1f77be
impl basic product evaluator on top of previous one
2011-03-24 09:33:36 +01:00
Gael Guennebaud
cfd5c2d74e
import evaluator works
2011-03-23 11:54:00 +01:00