[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Toon-members] [SCM] toon branch, expression_template, updated. TOON_2.0
From: |
Edward Rosten |
Subject: |
[Toon-members] [SCM] toon branch, expression_template, updated. TOON_2.0-24-gfd865e9 |
Date: |
Mon, 02 Jul 2012 20:36:51 +0000 |
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "toon".
The branch, expression_template has been updated
via fd865e93889422bd60c0f42d3872d7b26dd776b8 (commit)
via 8ac2c02a6773953540660ae31ae9031d1e5da5db (commit)
from 9bfb146897962bc02b491987e0145d5b95ade3f3 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit fd865e93889422bd60c0f42d3872d7b26dd776b8
Author: Edward Rosten <address@hidden>
Date: Mon Jul 2 22:24:39 2012 +0200
Added benchmarking for new and old Gauss Jordan
New one uses one expression template, old one uses only for-loops.
Columns are matrix size, number of columns to solve, times for CC=compiled
cramer, GJ=Gauss Jordan, GO=Gauss-Jordan original, GI = Inversion using
Gaussian Elimination, GE=Gaussian Elimination
With expression templates:
5 1 CC 7.6644e+05 GJ 1.7285e+06 GO
2.1645e+06 GI 2.4628e+06 GE 3.9262e+06
5 2 CC 6.3086e+05 GJ 1.7554e+06 GO
2.2104e+06 GI 2.5163e+06 GE 3.2433e+06
5 3 CC 6.1695e+05 GJ 1.7293e+06 GO
2.2121e+06 GI 2.4963e+06 GE 3.0392e+06
5 4 CC 6.0029e+05 GJ 1.7232e+06 GO
2.1807e+06 GI 2.5291e+06 GE 2.7762e+06
5 5 CC 5.8261e+05 GJ 1.708e+06 GO
2.1957e+06 GI 2.5025e+06 GE 2.5117e+06
5 6 CC 5.6543e+05 GJ 1.7279e+06 GE
1.9314e+06 GO 2.1868e+06 GI 2.4621e+06
5 7 CC 5.5679e+05 GJ 1.7185e+06 GE
2.0633e+06 GO 2.115e+06 GI 2.4904e+06
5 8 CC 5.7767e+05 GE 1.6429e+06 GJ
1.7581e+06 GO 2.1534e+06 GI 2.4999e+06
5 9 CC 5.72e+05 GE 1.3592e+06 GJ
1.6981e+06 GO 2.1737e+06 GI 2.4708e+06
5 10 CC 5.6332e+05 GJ 1.7067e+06 GE
1.763e+06 GO 2.1519e+06 GI 2.4586e+06
5 12 CC 5.3376e+05 GJ 1.2754e+06 GE
1.5614e+06 GO 1.6611e+06 GI 1.7453e+06
5 20 CC 5.0493e+05 GE 9.331e+05 GJ
1.1374e+06 GO 1.4548e+06 GI 1.5952e+06
5 40 CC 4.12e+05 GE 4.3131e+05 GJ
5.6406e+05 GI 7.4054e+05 GO 7.505e+05
5 78 GE 2.5214e+05 CC 2.9789e+05 GJ
3.9018e+05 GO 4.9962e+05 GI 5.0047e+05
5 140 GE 1.3277e+05 CC 2.1294e+05 GJ
2.5211e+05 GI 3.1541e+05 GO 3.23e+05
5 232 GE 86063 CC 1.4784e+05 GJ
1.6944e+05 GO 2.1204e+05 GI 2.1537e+05
5 360 GE 59055 CC 1.0481e+05 GJ
1.1502e+05 GO 1.425e+05 GI 1.4432e+05
Without:
5 1 GJ 4.8445e+05 GO 6.2177e+05 CC
7.7122e+05 GI 2.5299e+06 GE 3.951e+06
5 2 GJ 4.8235e+05 GO 6.1925e+05 CC
6.2655e+05 GI 2.4719e+06 GE 3.2761e+06
5 3 GJ 4.5601e+05 GO 5.8622e+05 CC
6.1124e+05 GI 2.4432e+06 GE 2.8037e+06
5 4 GJ 4.7585e+05 CC 6.0067e+05 GO
6.1337e+05 GE 2.4161e+06 GI 2.4969e+06
5 5 GJ 4.7877e+05 CC 5.9774e+05 GO
6.3102e+05 GI 2.5279e+06 GE 2.5661e+06
5 6 GJ 4.8292e+05 CC 5.8053e+05 GO
6.2227e+05 GE 1.991e+06 GI 2.5347e+06
5 7 GJ 4.819e+05 CC 5.8384e+05 GO
6.2127e+05 GE 1.6187e+06 GI 2.5325e+06
5 8 GJ 4.7962e+05 CC 5.8196e+05 GO
6.1711e+05 GE 2.024e+06 GI 2.4879e+06
5 9 GJ 4.7947e+05 CC 5.5944e+05 GO
6.2401e+05 GE 1.4241e+06 GI 2.1931e+06
5 10 GJ 4.7445e+05 CC 5.5462e+05 GO
6.1142e+05 GE 1.3793e+06 GI 2.4668e+06
5 12 GJ 4.3644e+05 CC 5.5347e+05 GO
5.6067e+05 GE 1.2444e+06 GI 1.756e+06
5 20 GJ 4.2415e+05 CC 5.1604e+05 GO
5.4856e+05 GE 9.4854e+05 GI 1.6084e+06
5 40 GJ 3.0084e+05 GO 3.7784e+05 CC
4.1927e+05 GE 4.4943e+05 GI 7.7645e+05
5 78 GJ 2.38e+05 GE 2.5562e+05 CC
3.0322e+05 GO 3.0877e+05 GI 5.1461e+05
5 140 GE 1.3495e+05 GJ 1.7759e+05 CC
2.1259e+05 GO 2.2626e+05 GI 3.1818e+05
5 232 GE 88125 GJ 1.3026e+05 CC
1.4991e+05 GO 1.6522e+05 GI 2.1233e+05
5 360 GE 57078 GJ 95891 CC
1.0654e+05 GO 1.2219e+05 GI 1.4443e+05
Expression templates give a big speedup for both the new and old Gauss
Jordan.
This makes no sense.
commit 8ac2c02a6773953540660ae31ae9031d1e5da5db
Author: Edward Rosten <address@hidden>
Date: Mon Jul 2 18:10:00 2012 +0200
Fix ambiguous overloads in expression templates.
problem was resolving between:
operator*(const P1&, const vector<Dynamic, P2, B2>&);
and
operator*(const vector<S1,P1,B1>&, const vector<S2, P2, B2>&);
Fixed using enable_if imported from boost.
-----------------------------------------------------------------------
Summary of changes:
TooN.h | 19 ++++++
benchmark/solve_ax_equals_b.cc | 88 ++++++++++++++++++++++++++-
internal/enable_if.h | 123 ++++++++++++++++++++++++++++++++++++++
internal/expression_templates.hh | 10 +++-
internal/operators.hh | 10 +++-
5 files changed, 244 insertions(+), 6 deletions(-)
create mode 100644 internal/enable_if.h
hooks/post-receive
--
toon
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Toon-members] [SCM] toon branch, expression_template, updated. TOON_2.0-24-gfd865e9,
Edward Rosten <=