Gael Guennebaud
626821b0e3
Add evaluator/assignment to TriangularView expressions
2013-12-02 14:06:17 +01:00
Gael Guennebaud
230f5c3aa9
Evaluator: introduce the main Assignment class, add call_assignment to bypass NoAlias and AssumeAliasing, and some bits of cleaning
2013-11-25 15:20:31 +01:00
Gael Guennebaud
d1d7a1ade9
Workaround a bunch of stupid warnings in unit tests
2013-06-23 19:11:32 +02: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
c1eb820e50
Implement interface for NoAlias assignments.
...
* Rename the old copy_using_evaluators to noalias_copy_using_evaluators.
* Write a new copy_using_evaluators which strips NoAlias expression, if present,
and calls noalias_copy_using_evaluators; in future, it will also take care of
aliasing in products.
* Add expression() getter to NoAlias.
2012-06-29 13:24:04 +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
23184527fa
Resize lhs automatically in copy_using_evaluator().
2012-06-28 15:25:25 +01:00
Jitse Niesen
172af9facc
Fix an evaluator test which was wrong and failed in debug builds.
2012-06-24 17:31:19 +01: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
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
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
d90a8ee8bd
Evaluators: add Block evaluator as dumb wrapper, add slice vectorization.
2011-03-31 13:50:52 +01:00
Jitse Niesen
b175bc464f
Evaluators: Implement linear traversal, better testing.
2011-03-27 22:08:48 +01:00
Jitse Niesen
5c204d1ff7
Evaluators: Implement LinearVectorizedTraversal, packet ops in evaluators.
2011-03-25 16:30:41 +00:00
Gael Guennebaud
abc8c0821c
makes evaluator test use VERIFY_IS_APPROX
2011-03-23 17:23:56 +01:00
Gael Guennebaud
816541d82c
add a stupid Product<A,B> expression produced by prod(a,b), and implement a first version of its evaluator
2011-03-23 16:12:21 +01:00
Gael Guennebaud
cfd5c2d74e
import evaluator works
2011-03-23 11:54:00 +01:00