Benoit Steiner
7b3d7acebe
Added support for fp16 to test_isApprox, test_isMuchSmallerThan, and test_isApproxOrLessThan
2016-04-14 10:25:50 -07:00
Gael Guennebaud
ea7087ef31
Merged in rmlarsen/eigen (pull request PR-174)
...
Add matrix condition number estimation module.
2016-04-14 15:11:33 +02:00
Gael Guennebaud
2c9e4fa417
Add debug output for random unit test
2016-04-13 22:56:12 +02:00
Gael Guennebaud
f4e12272f1
Fix corner case in unit test.
2016-04-13 22:18:02 +02:00
Gael Guennebaud
a95e1a273e
Fix warning in unit tests
2016-04-13 22:00:38 +02:00
Gael Guennebaud
512ba0ac76
Add regression unit tests for half-packet vectorization
2016-04-13 18:16:35 +02:00
Benoit Steiner
25d05c4b8f
Fixed the vectorization logic test
2016-04-12 14:13:25 -07:00
Rasmus Larsen
6498dadc2f
Merged eigen/eigen into default
2016-04-11 17:42:05 -07:00
Till Hoffmann
643b697649
Proper handling of domain errors.
2016-04-10 00:37:53 +01:00
Rasmus Larsen
7a8176587b
Merged eigen/eigen into default
2016-04-09 12:47:41 -07:00
Benoit Steiner
0d2a532fc3
Created the new EIGEN_TEST_CUDA_CLANG option to compile the CUDA tests using clang instead of nvcc
2016-04-08 13:16:08 -07:00
Rasmus Larsen
c34e55c62b
Merged eigen/eigen into default
2016-04-07 20:23:03 -07:00
Benoit Steiner
10bdd8e378
Merged in tillahoffmann/eigen (pull request PR-173)
...
Added zeta function of two arguments and polygamma function
2016-04-06 09:40:17 -07:00
Benoit Steiner
7781f865cb
Renamed the EIGEN_TEST_NVCC cmake option into EIGEN_TEST_CUDA per the discussion in bug #1173 .
2016-04-06 09:35:23 -07:00
Konstantinos Margaritis
2bba4ee2cf
Merged kmargar/eigen/tip into default
2016-04-05 22:22:08 +03:00
Konstantinos Margaritis
644d0f91d2
enable all tests again
2016-04-05 05:59:54 -04:00
Rasmus Munk Larsen
86e0ed81f8
Addresses comments on Eigen pull request PR-174.
...
* Get rid of code-duplication for real vs. complex matrices.
* Fix flipped arguments to select.
* Make the condition estimation functions free functions.
* Use Vector::Unit() to generate canonical unit vectors.
* Misc. cleanup.
2016-04-04 14:20:01 -07:00
Rasmus Munk Larsen
9d51f7c457
Add rcond method to LDLT.
2016-04-01 16:48:38 -07:00
Rasmus Munk Larsen
f54137606e
Add condition estimation to Cholesky (LLT) factorization.
2016-04-01 16:19:45 -07:00
Rasmus Munk Larsen
91414e0042
Fix comments in ConditionEstimator and minor cleanup.
2016-04-01 11:58:17 -07:00
Rasmus Munk Larsen
1aa89fb855
Add matrix condition estimator module that implements the Higham/Hager algorithm from http://www.maths.manchester.ac.uk/~higham/narep/narep135.pdf used in LPACK. Add rcond() methods to FullPivLU and PartialPivLU.
2016-04-01 10:27:59 -07:00
Till Hoffmann
3cb0a237c1
Fixed suggestions by Eugene Brevdo.
2016-04-01 17:51:39 +01:00
Till Hoffmann
57239f4a81
Added polygamma function.
2016-04-01 14:35:21 +01:00
Till Hoffmann
dd5d390daf
Added zeta function.
2016-04-01 13:32:29 +01:00
Gael Guennebaud
09ad31aa85
Add regression test for nesting type handling in blas_traits
2016-03-29 22:33:57 +02:00
Konstantinos Margaritis
01e7298fe6
actually include ZVector files, passes most basic tests (float still fails)
2016-03-28 10:58:02 -04:00
Konstantinos Margaritis
f48011119e
Merged eigen/eigen into default
2016-03-28 01:48:45 +03:00
Konstantinos Margaritis
ed6b9d08f1
some primitives ported, but missing intrinsics and crash with asm() are a problem
2016-03-27 18:47:49 -04:00
Christoph Hertzberg
9642fd7a93
Replace all M_PI by EIGEN_PI and add a check to the testsuite.
2016-03-23 15:37:45 +01:00
Benoit Steiner
28e02996df
Merged patch 672 from Justin Lebar: Don't use long doubles with cuda
2016-03-22 16:53:57 -07:00
Eugene Brevdo
9550be925d
Merge specfun branch.
2016-03-13 15:46:51 -07:00
Eugene Brevdo
b1a9afe9a9
Add tests in array.cpp that check igamma/igammac properties.
...
This adds to the set of existing tests, which compare a specific
set of values to third party calculated ground truth.
2016-03-13 15:45:34 -07:00
Eugene Brevdo
73220d2bb0
Resolve bad merge.
2016-03-08 17:28:21 -08:00
Eugene Brevdo
0b9e0abc96
Make igamma and igammac work correctly.
...
This required replacing ::abs with std::abs.
Modified some unit tests.
2016-03-04 21:12:10 -08:00
Eugene Brevdo
7ea35bfa1c
Initial implementation of igamma and igammac.
2016-03-03 19:39:41 -08:00
Gael Guennebaud
e9bea614ec
Fix shortcoming in fixed-value deduction of startRow/startCol
2016-02-29 10:31:27 +01:00
Gael Guennebaud
2af04f1a57
Extend unit test to stress smart_copy with empty input/output.
2016-02-19 22:59:28 +01:00
Gael Guennebaud
f6f057bb7d
bug #1166 : fix shortcomming in gemv when the destination is not a vector at compile-time.
2016-02-15 21:43:07 +01:00
Gael Guennebaud
0a537cb2d8
bug #901 : fix triangular-view with unit diagonal of sparse rectangular matrices.
2016-02-12 15:58:31 +01:00
Gael Guennebaud
b35d1a122e
Fix unit test: accessing elements in a deque by offsetting a pointer to another element causes undefined behavior.
2016-02-12 15:31:16 +01:00
Gael Guennebaud
2d35c0cb5f
Merged in rmlarsen/eigen (pull request PR-163)
...
Implement complete orthogonal decomposition in Eigen.
2016-02-11 15:12:34 +01:00
Benoit Steiner
1dfaafe28a
Added a regression test for tanh
2016-02-10 17:41:47 -08:00
Rasmus Munk Larsen
b6fdf7468c
Rename inverse -> pseudoInverse.
2016-02-10 13:03:07 -08:00
Rasmus Munk Larsen
bb8811c655
Enable inverse() method for computing pseudo-inverse.
2016-02-09 20:35:20 -08:00
Rasmus Munk Larsen
414efa47d3
Add missing calls to tests of COD.
...
Fix a few mistakes in 3.2 -> 3.3 port.
2016-02-08 08:50:34 -08:00
Rasmus Munk Larsen
86d6201d7b
Merge.
2016-02-06 16:36:56 -08:00
Rasmus Munk Larsen
d904c8ac8f
Implement complete orthogonal decomposition in Eigen.
2016-02-06 16:32:00 -08:00
Gael Guennebaud
8e599bc098
Fix warning in unit test
2016-02-06 20:26:59 +01:00
Gael Guennebaud
5b2d287878
bug #779 : allow non aligned buffers for buffers smaller than the requested alignment.
2016-02-05 21:46:39 +01:00
Rasmus Munk Larsen
093f2b3c01
Merge.
2016-02-04 14:32:19 -08:00
Rasmus Munk Larsen
2e39cc40a4
Fix condition that made the unit test spam stdout with bogus error messages.
2016-02-04 12:56:14 -08:00
Gael Guennebaud
b70db60e4d
Merged in rmlarsen/eigen (pull request PR-161)
...
Change Eigen's ColPivHouseholderQR to use numerically stable norm downdate formula
2016-02-03 21:37:06 +01:00
Rasmus Munk Larsen
5fb04ab2da
Fix bad line break. Don't repeat Kahan matrix test since it is deterministic.
2016-02-03 10:12:10 -08:00
Damien R
c301f99208
bug #1164 : fix list and deque specializations such that our aligned allocator is automatically activatived only when the user did not specified an allocator (or specified the default std::allocator).
2016-02-03 18:07:25 +01:00
Rasmus Munk Larsen
00f9ef6c76
merging.
2016-02-01 11:10:30 -08:00
Gael Guennebaud
ec469700dc
bug #557 : make InnerIterator of sparse storage types more versatile by adding default-ctor, copy-ctor/assignment
2016-02-01 15:04:33 +01:00
Gael Guennebaud
6e0a86194c
Fix integer path for num_steps==1
2016-02-01 15:00:04 +01:00
Gael Guennebaud
e1d219e5c9
bug #698 : fix linspaced for integer types.
2016-02-01 14:25:34 +01:00
Gael Guennebaud
a4e4542b89
Avoid overflow in unit test.
2016-01-30 22:26:17 +01:00
Gael Guennebaud
3ba8a3ab1a
Disable underflow unit test on the i387 FPU.
2016-01-30 22:14:04 +01:00
Gael Guennebaud
15084cf1ac
bug #632 : add support for "dense +/- sparse" operations. The current implementation is based on SparseView to make the dense subexpression compatible with the sparse one.
2016-01-29 22:09:45 +01:00
Gael Guennebaud
d8d37349c3
bug #696 : enable zero-sized block at compile-time by relaxing the respective assertion
2016-01-29 12:44:49 +01:00
Rasmus Munk Larsen
acce4dd050
Change Eigen's ColPivHouseholderQR to use the numerically stable norm downdate formula from http://www.netlib.org/lapack/lawnspdf/lawn176.pdf , which has been used in LAPACK's xGEQPF and xGEQP3 since 2006. With the old formula, the code chooses the wrong pivots and fails to correctly determine rank on graded matrices.
...
This change also adds additional checks for non-increasing diagonal in R11 to existing unit tests, and adds a new unit test with the Kahan matrix, which consistently fails for the original code.
Benchmark timings on Intel(R) Xeon(R) CPU E5-1650 v3 @ 3.50GHz. Code compiled with AVX & FMA. I just ran on square matrices of 3 difference sizes.
Benchmark Time(ns) CPU(ns) Iterations
-------------------------------------------------------
Before:
BM_EigencolPivQR/64 53677 53627 12890
BM_EigencolPivQR/512 15265408 15250784 46
BM_EigencolPivQR/4k 15403556228 15388788368 2
After (non-vectorized version):
Benchmark Time(ns) CPU(ns) Iterations Degradation
--------------------------------------------------------------------
BM_EigencolPivQR/64 63736 63669 10844 18.5%
BM_EigencolPivQR/512 16052546 16037381 43 5.1%
BM_EigencolPivQR/4k 15149263620 15132025316 2 -2.0%
Performance-wise there seems to be a ~18.5% degradation for small (64x64) matrices, probably due to the cost of more O(min(m,n)^2) sqrt operations that are not needed for the unstable formula.
2016-01-28 15:07:26 -08:00
Gael Guennebaud
c1d900af61
bug #178 : remove additional const on nested expression, and remove several const_cast.
2016-01-28 21:43:20 +01:00
Gael Guennebaud
ddf64babde
merge
2016-01-28 13:21:48 +01:00
Gael Guennebaud
df15fbc452
bug #1158 : PartialReduxExpr is a vector expression, and it thus must expose the LinearAccessBit flag
2016-01-28 13:16:30 +01:00
Gael Guennebaud
9ac8e8c6a1
Extend mixing type unit test with trmv, and the following not yet supported products: trmm, symv, symm
2016-01-27 17:29:53 +01:00
Gael Guennebaud
6da5d87f92
add nomalloc unit test for rank2 updates
2016-01-27 17:26:48 +01:00
Gael Guennebaud
9801c959e6
Fix tri = complex * real product, and add respective unit test.
2016-01-27 17:12:25 +01:00
Gael Guennebaud
412bb5a631
Remove redundant test.
2016-01-26 23:35:30 +01:00
Gael Guennebaud
8328caa618
bug #51 : add block preallocation mechanism to selfadjoit*matrix product.
2016-01-25 22:06:42 +01:00
Gael Guennebaud
e58827d2ed
bug #51 : make general_matrix_matrix_triangular_product use L3-blocking helper so that general symmetric rank-updates and general-matrix-to-triangular products do not trigger dynamic memory allocation for fixed size matrices.
2016-01-25 17:16:33 +01:00
Gael Guennebaud
869b4443ac
Add SparseVector::conservativeResize() method.
2016-01-25 11:55:39 +01:00
Gael Guennebaud
1cf85bd875
bug #977 : add stableNormalize[d] methods: they are analogues to normalize[d] but with carefull handling of under/over-flow
2016-01-23 22:40:11 +01:00
Gael Guennebaud
0caa4b1531
bug #1150 : make IncompleteCholesky more robust by iteratively increase the shift until the factorization succeed (with at most 10 attempts).
2016-01-23 22:13:54 +01:00
Gael Guennebaud
5358c38589
bug #1095 : add Cholmod*::logDeterminant/determinant (from patch of Joshua Pritikin)
2016-01-22 16:05:29 +01:00
Gael Guennebaud
ee37eb4eed
bug #977 : avoid division by 0 in normalize() and normalized().
2016-01-21 20:43:42 +01:00
Gael Guennebaud
62f7e77711
add upper|lower case in incomplete_cholesky unit test
2016-01-21 00:02:59 +01:00
Gael Guennebaud
ed8ade9c65
bug #1149 : fix Pastix*::*parm()
2016-01-20 19:01:24 +01:00
Gael Guennebaud
8b9dc9f0df
bug #1144 : fix regression in x=y+A*x (aliasing), and move evaluator_traits::AssumeAliasing to evaluator_assume_aliasing.
2016-01-09 08:30:38 +01:00
Eugene Brevdo
14897600b7
Protect digamma tests behind a EIGEN_HAS_C99_MATH check.
2015-12-24 21:28:18 -08:00
Eugene Brevdo
f7362772e3
Add digamma for CPU + CUDA. Includes tests.
2015-12-24 21:15:38 -08:00
Gael Guennebaud
ca39b1546e
Merged in ebrevdo/eigen (pull request PR-148)
...
Add special functions to eigen: lgamma, erf, erfc.
2015-12-11 11:52:09 +01:00
Gael Guennebaud
836da91b3f
Fix unit tests wrt EIGEN_DEFAULT_TO_ROW_MAJOR
2015-12-11 10:06:28 +01:00
Benoit Steiner
6acf2bd472
Fixed compilation error triggered by MSVC 2008
2015-12-10 17:17:42 -08:00
Benoit Steiner
8314962ce2
Only test the lgamma, erf and erfc function when using a C99 compliant compiler
2015-12-10 13:13:45 -08:00
Benoit Steiner
48877a6933
Only implement the lgamma, erf, and erfc functions when using a compiler compliant with the C99 specification.
2015-12-10 13:09:49 -08:00
Gael Guennebaud
46d2f6cd78
Workaround gcc issue with -O3 and the i387 FPU.
2015-12-10 21:33:43 +01:00
Benoit Steiner
b630d10b62
Only disable the erf, erfc, and lgamma tests for older versions of c++.
2015-12-07 17:08:08 -08:00
Benoit Steiner
73b68d4370
Fixed a couple of typos
...
Cleaned up the code a bit.
2015-12-07 16:38:48 -08:00
Eugene Brevdo
fa4f933c0f
Add special functions to Eigen: lgamma, erf, erfc.
...
Includes CUDA support and unit tests.
2015-12-07 15:24:49 -08:00
Benoit Steiner
e25e3a041b
Added rsqrt() method to the Array class: this method computes the coefficient-wise inverse square root much more efficiently than calling sqrt().inverse().
2015-12-03 18:16:35 -08:00
Gael Guennebaud
1562e13aba
Add missing Rotation2D::operator=(Matrix2x2)
2015-12-03 22:25:26 +01:00
Gael Guennebaud
0bb12fa614
Add LU::transpose().solve() and LU::adjoint().solve() API.
2015-12-01 14:38:47 +01:00
Rasmus Munk Larsen
1663d15da7
Add internal method _solve_impl_transposed() to LU decomposition classes that solves A^T x = b or A^* x = b.
2015-11-30 13:39:24 -08:00
Gael Guennebaud
6c02cbbb0f
Fix matrix to quaternion (and angleaxis) conversion for matrix expression.
2015-12-01 09:45:56 +01:00
Gael Guennebaud
844561939f
Do not check NeedsToAlign if no static alignment
2015-11-30 22:36:14 +01:00
Gael Guennebaud
6fcd316f23
Extend superlu cmake script to check version
2015-11-30 14:48:11 +01:00
Gael Guennebaud
3f32f5ec22
ArrayBase::sign: add unit test and fix doc
2015-11-27 16:27:53 +01:00
Gael Guennebaud
8a2659f0cb
Improve numerical robustness of some unit tests
2015-11-23 10:53:55 +01:00
Gael Guennebaud
4522ffd17c
Add regression using test for array<complex>/real
2015-11-20 15:29:32 +01:00
Gael Guennebaud
4a985e793c
Workaround msvc broken complex/complex division in unit test
2015-11-20 14:52:08 +01:00
Gael Guennebaud
1994999105
Add regression unit test for prod.maxCoeff(i)
2015-11-18 23:29:07 +01:00
Gael Guennebaud
a64156cae5
Workaround i387 issue in unit test
2015-11-16 13:33:54 +01:00
Gael Guennebaud
21ed29e2c9
Disable complex scalar types because the compiler might aggressively vectorize
...
the initialization of complex coeffs to 0 before we can check for alignedness
2015-12-09 20:46:09 +01:00
Gael Guennebaud
03ad4fc504
Extend unit test of coeff-based product to check many more combinations
2015-12-08 11:27:43 +01:00
Gael Guennebaud
bfd6ee64f3
bug #1105 : fix default preallocation when moving from compressed to uncompressed mode
2015-11-06 15:05:37 +01:00
Gael Guennebaud
780eeb3be7
prevent stack overflow in unit test
2015-11-05 00:32:48 -08:00
Gael Guennebaud
90323f1751
Fix AVX round/ceil/floor, and fix respective unit test
2015-11-04 22:15:57 +01:00
Gael Guennebaud
3dd24bdf99
Merged in aavenel/eigen (pull request PR-142)
...
Add round, ceil and floor for SSE4.1/AVX (Bug #70 )
2015-11-04 18:26:38 +01:00
Gael Guennebaud
902750826b
Add support for dense.cwiseProduct(sparse)
...
This also fixes a regression regarding (dense*sparse).diagonal()
2015-11-04 17:42:07 +01:00
Gael Guennebaud
f6b1deebab
Fix compilation of sparse-triangular to dense assignment
2015-11-04 17:02:32 +01:00
Alexandre Avenel
d46e2c10a6
Add round, ceil and floor for SSE4.1/AVX (Bug #70 )
2015-11-01 10:49:27 +01:00
Gael Guennebaud
5a2007f7e4
typo
2015-10-30 22:16:23 +01:00
Gael Guennebaud
8a3151de2e
Limit matrix size for other eigen and schur decompositions
2015-10-30 18:06:03 +01:00
Gael Guennebaud
fdf3030ff8
Limit matrix sizes for trmm unit test and complexes.
2015-10-30 15:07:50 +01:00
Gael Guennebaud
9285647dfe
Limit matrix size when testing for NaN: they can become prohibitively expensive when running on x87 fp unit
2015-10-30 14:44:22 +01:00
Gael Guennebaud
213bd0253a
Fix gcc 4.4 compilation issue
2015-10-30 08:44:37 +01:00
Gael Guennebaud
5b6cff5b0e
fix typo
2015-10-28 20:18:00 +01:00
Gael Guennebaud
28ddb5158d
Enable std::isfinite/nan/inf on MSVC 2013 and newer and clang. Fix isinf for gcc4.4 and older msvc with fast-math.
2015-10-28 16:27:20 +01:00
Gael Guennebaud
1f11dd6ced
Add a unit test for large chains of products
2015-10-28 12:53:13 +01:00
Gael Guennebaud
902c2db5a5
Extend vectorwiseop unit test with column/row vectors as input.
2015-10-28 11:59:20 +01:00
Gael Guennebaud
77ff3386b7
Refactoring of the cost model:
...
- Dynamic is now an invalid value
- introduce a HugeCost constant to be used for runtime-cost values or arbitrarily huge cost
- add sanity checks for cost values: must be >=0 and not too large
This change provides several benefits:
- it fixes shortcoming is some cost computation where the Dynamic case was not properly handled.
- it simplifies cost computation logic, and should avoid future similar shortcomings.
- it allows to distinguish between different level of dynamic/huge/infinite cost
- it should enable further simplifications in the computation of costs (save compilation time)
2015-10-28 11:42:14 +01:00
Gael Guennebaud
827d8a9bad
Fix false negative in redux test
2015-10-27 21:37:03 +01:00
Gael Guennebaud
946f8850e8
bug #1008 : add a unit test for fast-math mode and isinf/isnan/isfinite/etc. functions.
2015-10-27 16:44:45 +01:00
Gael Guennebaud
699c33e76a
merge
2015-10-27 11:10:11 +01:00
Gael Guennebaud
73f692d16b
Fix ambiguous instantiation
2015-10-27 11:01:37 +01:00
Gael Guennebaud
0fc8954282
Improve readibility of EIGEN_DEBUG_ASSIGN mode.
2015-10-27 10:38:49 +01:00
Gael Guennebaud
e6f8c5c325
Add support to directly evaluate the product of two sparse matrices within a dense matrix.
2015-10-26 18:20:00 +01:00
Gael Guennebaud
a5324a131f
bug #1092 : fix iterative solver ctors for expressions as input
2015-10-26 16:16:24 +01:00
Gael Guennebaud
f93654ae16
bug #1098 : fix regression introduced when generalizing some compute() methods in changeset 7031a851d4
...
.
2015-10-26 16:00:25 +01:00
Gael Guennebaud
4704bdc9c0
Make the IterativeLinearSolvers module compatible with MPL2-only mode
...
by defaulting to COLAMDOrdering and NaturalOrdering for ILUT and ILLT respectively.
2015-10-26 15:17:52 +01:00
Gael Guennebaud
8a211bb1a9
bug #1088 : fix setIdenity for non-compressed sparse-matrix
2015-10-25 22:01:58 +01:00
Gael Guennebaud
54b23cce16
Switch to MPL2
2015-10-23 10:36:33 +02:00
Gael Guennebaud
71b473aab1
Remove invalid typename keyword
2015-10-22 21:58:18 +02:00
Gael Guennebaud
e78bc111f1
bug #1090 : fix a shortcoming in redux logic for which slice-vectorization plus unrolling might happen.
2015-10-21 20:58:33 +02:00
Gael Guennebaud
8961265889
bug #1064 : add support for Ref<SparseVector>
2015-10-21 09:47:43 +02:00
Gael Guennebaud
c0adf6e38d
Fix perm*sparse return type and nesting, and add several sanity checks for perm*sparse
2015-10-14 10:16:48 +02:00
Gael Guennebaud
b4c79ee1d3
Update custom setFromTripplets API to allow passing a functor object, and add a collapseDuplicates method to cleanup the API. Also add respective unit test
2015-10-13 11:30:41 +02:00
Gael Guennebaud
a44d91a0b2
extend unit test for SparseMatrix::prune
2015-10-13 10:53:38 +02:00
Gael Guennebaud
ea9749fd6c
Fix packetmath unit test for pdiv not being always defined
2015-10-13 09:53:46 +02:00
Gael Guennebaud
6536b4bad7
Implement temporary-free path for "D.nolias() ?= C + A*B". (I thought it was already implemented)
2015-10-09 15:28:09 +02:00
Gael Guennebaud
ae38910693
The evalautor of Solve was missing the EvalBeforeNestingBit flag.
2015-10-09 14:57:19 +02:00
Gael Guennebaud
515ecddb97
Add unit test for nested_eval
2015-10-09 14:29:46 +02:00
Gael Guennebaud
78b8c344b5
Add unit test for CoeffReadCost
2015-10-09 14:28:48 +02:00
Gael Guennebaud
321cb56bf6
Add unit test to check nesting of complex expressions in redux()
2015-10-09 13:29:39 +02:00
Gael Guennebaud
c9718514f5
Fix nesting sub-expression in outer-products
2015-10-08 21:41:53 +02:00
Gael Guennebaud
8d00a953af
Fix a nesting issue in some matrix-vector cases.
2015-10-08 17:36:57 +02:00
Gael Guennebaud
dd934ad057
Re-enable vectorization of LinSpaced, plus some cleaning
2015-10-08 17:27:01 +02:00
Gael Guennebaud
412c049ba4
Fix a warning
2015-10-08 16:27:54 +02:00