de0f486 | Cyril Bouvier | 06 November 2020, 15:12:44 UTC | CI on OSX: try to reduce verbosity as it cause job error on Travis: Error message: The job exceeded the maximum log length, and has been terminated. | 06 November 2020, 15:12:44 UTC |
1569db4 | Cyril Bouvier | 06 November 2020, 08:15:20 UTC | CI: fix homebrew commands | 06 November 2020, 08:15:20 UTC |
c829b95 | cyrilbouvier | 05 November 2020, 17:03:51 UTC | Simd: add unpacklohi and pack methods (#321) * simd: add unpacklohi method in simd struct for simd128 and simd256 * simd: more consistent interface for unpacklo/hi, pack, ... (WIP) + add tests * simd256_int16.inl: remove comments that should have not be there * simd: remove unpacklo128 and unpackhi128 from simd256 struct * simd: add unpacklo, unpackhi, pack_even, pack_odd methos in simd521 structs * simd512: replace loadu_epi32 by loadu_si512 * simd512 for float: rewrite pack_even, pack_odd and pack * simd: fix lots of typos | 05 November 2020, 17:03:51 UTC |
539d47b | cyrilbouvier | 05 November 2020, 16:44:03 UTC | Add more precise type_string to SIMD structs (#320) | 05 November 2020, 16:44:03 UTC |
fd9f042 | cyrilbouvier | 05 November 2020, 15:48:39 UTC | Fix for greater and lesser in simd (+test in test-simd.C) #317 (#318) | 05 November 2020, 15:48:39 UTC |
0147210 | cyrilbouvier | 28 August 2020, 09:18:59 UTC | call SET_FLAGS from configure.ac #315 (#316) | 28 August 2020, 09:18:59 UTC |
3cd3145 | Clément Pernet | 26 August 2020, 09:10:49 UTC | gfops irrelevant to please perfpublisher | 26 August 2020, 09:10:49 UTC |
2e653f7 | Clément Pernet | 26 August 2020, 07:58:09 UTC | no CXXFLAGS for C compiler | 26 August 2020, 07:58:09 UTC |
1da2083 | Clément Pernet | 26 August 2020, 07:47:32 UTC | make output suite CI requirements | 26 August 2020, 07:47:32 UTC |
1868602 | Clément Pernet | 26 August 2020, 07:39:23 UTC | fix missing inline | 26 August 2020, 07:39:23 UTC |
a677c35 | QuentinHsr | 31 July 2020, 13:52:40 UTC | Bruhat gen (#311) * first draft for bruhat gen * add test file * start writing a random generator of Left Triangular QuasiSep matrices * Update of Bruhat Generator * Update of Bruhat Generator 2 * Update of Bruhat Generator 3 * random generation of LTQS RPM * Update of Bruhat Generator * fzero for triangular matrices + left and right triangular tag * fix call to fzero * Update of Bruhat Generator * header in ffpack * typo * fix missing test * random gen now considers the QS order param * randgen now works * compilation fixes * Update of Bruhat Generator * Update of Bruhat Generator * Update of Bruhat Generator * remove endif * Update of Bruhat Generator * Update of Bruhat Generator * fix compilation errors * Update of Bruhat Generator * done with the rand generation (no longer any infinite loop * Update of Bruhat Generator * Computing the permutation to echelon form * fix * Update of Bruhat Generator * Update of Bruhat Generator * Update of Bruhat Generator * Update of Bruhat Generator * Update of Bruhat Generator * Update of Bruhat Generator * Update of Bruhat Generator * Update of Bruhat Generator * compress permutation is a MathPerm * fix leak * M allocated by callee * fix perm size * Update of Bruhat Generator * Update of Bruhat Generator * Update of Bruhat Generator * Update of Bruhat Generator * Update of BruhatxTS Matrix * Update of Bruhat product * Update of Bruhat product * Update of Bruhat product * Update of Bruhat product * Update of Bruhat product * doc on permutations * Update of Bruhat product * Update of Bruhat product * Update of Bruhat product * fix l->m dimension * debug in progress * fix bug with rs * fix bug * fixed a bug * fixed ! * new benchmark for quasisep matrices * add bruhatgen file to install * doc + indent + order of args * cleanup * cleanup in progress * cleanup ++ * done cleanup of partial sums * done reviewing * bib ref Co-authored-by: Clément Pernet <clement.pernet@gmail.com> | 31 July 2020, 13:52:40 UTC |
e152f01 | Clément Pernet | 11 June 2020, 12:11:35 UTC | Merge branch 'master' of github.com:linbox-team/fflas-ffpack | 11 June 2020, 12:11:35 UTC |
11695cf | Clément Pernet | 10 June 2020, 08:00:26 UTC | fscal | 10 June 2020, 08:00:26 UTC |
23928f9 | Dima Pasechnik | 09 May 2020, 11:48:59 UTC | remove 1st and last file in .pc file (#308) this causes problem if building with ksh, as they remain, causing a broken .pc file. | 09 May 2020, 11:48:59 UTC |
f1f9ee7 | Jean-Guillaume Dumas | 17 March 2020, 12:09:04 UTC | fabi-version=6 only if gcc version < 5 (#305) * fabi-version=6 only if gcc version < 5 * fabi-version=6: detect gcc >= 5, gcc 4.3+ and gcc 4.9.2 Co-authored-by: Cyril Bouvier <cyril.bouvier@lirmm.fr> | 17 March 2020, 12:09:04 UTC |
cad4a57 | cyrilbouvier | 17 March 2020, 11:41:09 UTC | autotools: towards uniformization of givaro and fflas-ffpack (#293) * autotools: First step towards uniformization of givaro and fflas * autotools: fix for gcc 4.9 * fabi-version=6: detect gcc >= 5, gcc 4.3+ and gcc 4.9.2 Co-authored-by: Jean-Guillaume Dumas <Jean-Guillaume.Dumas@imag.fr> | 17 March 2020, 11:41:09 UTC |
2d9df94 | Pascal Giorgi | 16 March 2020, 14:59:33 UTC | fix bug for RNS conversion with modular<ruint> (#306) Solves issue #300. | 16 March 2020, 14:59:33 UTC |
d73feae | Clément Pernet | 13 February 2020, 09:31:11 UTC | symmetric freduce only on square matrices, and actually use it in fsyrk_strassen (#303) | 13 February 2020, 09:31:11 UTC |
cc6adc2 | Jean-Guillaume Dumas | 13 February 2020, 08:37:01 UTC | Charpoly checker over the integers is not yet implemented (#302) | 13 February 2020, 08:37:01 UTC |
c99b22f | Clément Pernet | 12 February 2020, 17:08:54 UTC | Delayed pre-computations in fsyrk-Strassen (#299) * WIP: new fsyrk_strassen * schedule for fsyk_strassen with accumulation and 3 temps * commit at 10000m * computeS1S2 * fix comment * compiling * still buggy * schedule with no acc working on dimension power of 2 * schedule with accumulation now works! (with k=n=2^m). * no verbosity * done machinery to reduce to cblas_xsyrk * done * ../fflas-ffpack/fflas/fflas_fsyrk_strassen.inl * fix wrong trans and gfops * clearer log * remove verbosity * add syrk_strassen to benchmark * improved computeS1S2 * no randiter when no field * done fixing bugs * slicing for odd dimensions * fix comment * fix bug in AATpC and change sign of S2 * new schedule + WIP on delayed * done with delayed * delayed computeS1S2 * fixed all bugs * remove verbosity * done * fix bug * Symmetric freduce * fix and benchmark classic divide and conquer fsyrk * new algo trait D&C * fix update of lazy helper * fsyrk Upper and Trans: 1st step * fix calls in test suite * fsyrk upper wip * making progress * fixed for Upper and Lower NoTrans * first step in fsyrk-trans, still not working * trans WIP * fix k=0 check * working back again * include file in distrib * fixes to trans * done debugging trans * fix k>n bug * fix default case * no int32_t * no helper * clean up benchmark * cleanup * cleanup * minor fixes * add a test for computeS1S2 * test computeS1S2 trans * control of the delayed mod reductions in computeS1S2 * NeedPreXXXReduction * WIP fixing bugs * fixed for modular<float> * trans wors * almost full test suite * check bounds on triangular matrices * fixed last (?) bugs * fixed last remaining bugs * done debuggind: the modular<int64_t>::maxcard issue is too deep into the whole library to be fixed here: disabling * cleanup debugging verbosity * fix maxcard * remove forceField * freduce UpLo works only if m<=n for now Co-authored-by: Jean-Guillaume Dumas <jgdumas@users.noreply.github.com> | 12 February 2020, 17:08:54 UTC |
07f3c7f | Clément Pernet | 12 February 2020, 15:11:08 UTC | Update MaxCardinality to MaxFFLASCardinality (#290) * rewrite of ChooseField using the new maxFFLASCardinality in Givaro * explicit cast to please clang ambiguous call to either cast or constructor * disable igemm with kmax < 4 * transpose * inline to fix multilib compilation failure * remove verb * double * parenthesis * print seed only when failed | 12 February 2020, 15:11:08 UTC |
34df86e | Clément Pernet | 31 January 2020, 14:32:07 UTC | fix bug | 31 January 2020, 14:32:07 UTC |
9c2e5c4 | Jean-Guillaume Dumas | 17 December 2019, 08:40:26 UTC | Threadindex (#281) * Added firstprivate for iterator to TASK in FOR1D * VALUE instead of firstprivate * new THREAD_INDEX construct | 17 December 2019, 08:40:26 UTC |
aa5e397 | A. Breust | 17 December 2019, 08:39:41 UTC | Added firstprivate for iterator to TASK in FOR1D (#280) * Added firstprivate for iterator to TASK in FOR1D * VALUE instead of firstprivate | 17 December 2019, 08:39:41 UTC |
2d3af1a | Clément Pernet | 17 December 2019, 08:35:27 UTC | BLAS based base-case for fsyrk (#283) * done machinery to reduce to cblas_xsyrk * done * fix wrong trans and gfops | 17 December 2019, 08:35:27 UTC |
1d2e2b7 | Pierre K | 16 December 2019, 15:16:31 UTC | updating GIVARO requirements to 4.1.1 (#287) | 16 December 2019, 15:16:31 UTC |
02f63b9 | cyrilbouvier | 10 September 2019, 14:05:41 UTC | Adding public attributes to Simd structs (#269) * simd: add extra public "using" to ease the usage of aligned vector * simd: add extra public "using" to ease checking compatibility with Modular | 10 September 2019, 14:05:41 UTC |
86cd45f | Clément Pernet | 09 September 2019, 13:36:18 UTC | fix missing return | 09 September 2019, 13:36:18 UTC |
e405785 | Jean-Guillaume Dumas | 28 August 2019, 14:22:19 UTC | _internal_iterator cannot be modified within the TASK call. (#278) call begin(), end() beforehand. No those are sequential, even if TASKS remai parallel | 28 August 2019, 14:22:19 UTC |
91dc2f3 | A. Breust | 20 August 2019, 09:02:01 UTC | Update README.md | 20 August 2019, 09:02:01 UTC |
7b122a3 | ZHG2017 | 05 August 2019, 09:09:30 UTC | Add the option of MODE for the use of Paladin FOR1D (#275) * Add the option of MODE for the use of Paladin FOR1D * Removed stdio in the parallel.h * Deleted commented FOR1D without MODE * Cleaned up according to the required changes and ready for code review | 05 August 2019, 09:09:30 UTC |
244fec7 | Jerry James | 23 July 2019, 08:47:17 UTC | Plug memory leaks. (#276) | 23 July 2019, 08:47:17 UTC |
2ac7c70 | Jean-Guillaume Dumas | 10 July 2019, 13:36:10 UTC | bitsize --> uint64_t | 10 July 2019, 13:36:10 UTC |
2b5b5f3 | Jean-Guillaume Dumas | 10 July 2019, 12:43:35 UTC | size_t --> uint64_t | 10 July 2019, 12:43:35 UTC |
69c6b04 | Clément Pernet | 04 July 2019, 09:08:36 UTC | fix travis | 04 July 2019, 09:08:36 UTC |
06f82f5 | Clément Pernet | 01 July 2019, 09:17:39 UTC | charpoly autotuning with larger field, to avoid Las-Vegas failure | 01 July 2019, 09:17:39 UTC |
118d7ef | Jean-Guillaume Dumas | 24 June 2019, 09:23:30 UTC | setSeed is now FFLAS::setSeed() (#271) samplesize from Integer | 24 June 2019, 09:23:30 UTC |
c309966 | Jean-Guillaume Dumas | 24 June 2019, 09:22:41 UTC | seed/size order reverted (#272) * seed/size order reverted * ok no bitSize nor samplesize for now on the subfields of a RNS * also no bitsize | 24 June 2019, 09:22:41 UTC |
e723e6a | Clément Pernet | 21 June 2019, 13:45:24 UTC | make autotune should fail when some run segfaults so Jenkins can detect it (#270) | 21 June 2019, 13:45:24 UTC |
c2db94f | Jean-Guillaume Dumas | 21 June 2019, 08:21:49 UTC | Randiter refacto (#263) * start randiter refacto (samplesize and order seed first) * bits are used to choose field, defautlt randiter will use them * spacing * noexec | 21 June 2019, 08:21:49 UTC |
9a9aa42 | Jean-Guillaume Dumas | 12 June 2019, 15:03:52 UTC | absCompare saves a large factor w.r.t. bitsize (#268) * absCompare saves a large factor w.r.t. bitsize * givaro * oups lda | 12 June 2019, 15:03:52 UTC |
01ced8e | Clément Pernet | 11 June 2019, 11:21:37 UTC | version++ | 11 June 2019, 11:21:37 UTC |
469a041 | Clément Pernet | 11 June 2019, 11:18:48 UTC | fix bug arithprog | 11 June 2019, 11:18:48 UTC |
b7e4bc2 | Clément Pernet | 11 June 2019, 08:25:49 UTC | fix p*RankProfile API | 11 June 2019, 08:25:49 UTC |
0b6d2b5 | Clément Pernet | 11 June 2019, 08:07:56 UTC | preparin new minor relelease | 11 June 2019, 08:07:56 UTC |
d54106c | Clément Pernet | 11 June 2019, 08:01:23 UTC | change p*Echelonform API | 11 June 2019, 08:01:23 UTC |
2731e92 | Clément Pernet | 07 June 2019, 14:24:16 UTC | passing numthreads to all p.. functions | 07 June 2019, 14:24:16 UTC |
2ac1a02 | Clément Pernet | 07 June 2019, 13:22:39 UTC | preparing release 2.4.1 | 07 June 2019, 13:22:39 UTC |
079b4c7 | Clément Pernet | 07 June 2019, 08:09:57 UTC | Update README.md | 07 June 2019, 08:09:57 UTC |
69ad8cb | Clément Pernet | 07 June 2019, 08:07:48 UTC | add README.md to distro | 07 June 2019, 08:07:48 UTC |
ddba4cc | Clément Pernet | 29 May 2019, 07:59:00 UTC | add missing set_numthreads | 29 May 2019, 07:59:00 UTC |
c4c39f6 | Clément Pernet | 27 May 2019, 11:37:15 UTC | version++ | 27 May 2019, 11:37:15 UTC |
157522b | Clément Pernet | 20 May 2019, 15:34:00 UTC | revert to linbox-osx | 20 May 2019, 15:34:00 UTC |
289a3c3 | Clément Pernet | 20 May 2019, 11:01:23 UTC | Merge pull request #264 from hygonsoc/master queryCacheSizes: add Hygon Dhyana support to fix cache size bug | 20 May 2019, 11:01:23 UTC |
5cc2c14 | fanjinke | 20 May 2019, 04:15:07 UTC | queryCacheSizes: add Hygon Dhyana support to fix cache size bug Signed-off-by: fanjinke <fanjinke@hygon.cn> | 20 May 2019, 04:15:07 UTC |
b7c14b2 | Clément Pernet | 15 May 2019, 12:43:18 UTC | update to new CI OSX slave | 15 May 2019, 12:43:18 UTC |
f064ed6 | Clément Pernet | 10 May 2019, 15:26:53 UTC | set xrows ldx when reading the B matrix | 10 May 2019, 15:26:53 UTC |
18e02fe | Jean-Guillaume Dumas | 10 May 2019, 14:49:35 UTC | Merge pull request #262 from linbox-team/fewer_openblas_setnumthreads enable a prologue setting openblas numthreads once for all | 10 May 2019, 14:49:35 UTC |
2542c9b | Clément Pernet | 10 May 2019, 14:36:25 UTC | Update README.md | 10 May 2019, 14:36:25 UTC |
b5073b8 | Clément Pernet | 10 May 2019, 13:46:46 UTC | enable a prologue setting openblas numthreads once for all | 10 May 2019, 13:46:46 UTC |
93eae1e | Clément Pernet | 10 May 2019, 12:46:08 UTC | reducing the load of the test suite | 10 May 2019, 12:46:08 UTC |
51a9bd1 | Clément Pernet | 10 May 2019, 09:09:11 UTC | ready for review | 10 May 2019, 09:09:11 UTC |
895e244 | Clément Pernet | 10 May 2019, 09:05:44 UTC | merge CONTRIBUTORS in AUTHORS | 10 May 2019, 09:05:44 UTC |
a625edc | Jean-Guillaume Dumas | 10 May 2019, 08:07:59 UTC | Merge pull request #261 from linbox-team/no_simd_for_cygwingcc Disable AVX with gcc on CYGWIN. | 10 May 2019, 08:07:59 UTC |
88df911 | Clément Pernet | 09 May 2019, 20:25:10 UTC | Update fflas-ffpack-config.h | 09 May 2019, 20:25:10 UTC |
e16f4ef | Clément Pernet | 09 May 2019, 19:07:48 UTC | prevent using >128bits registers with gcc on CYGWIN | 09 May 2019, 19:07:48 UTC |
a3362b6 | Clément Pernet | 03 May 2019, 12:52:55 UTC | update charpoly autotuner | 03 May 2019, 12:52:55 UTC |
249644a | Clément Pernet | 03 May 2019, 12:38:35 UTC | update precompiled libs | 03 May 2019, 12:38:35 UTC |
2ced4e0 | Clément Pernet | 03 May 2019, 12:23:32 UTC | rc1 | 03 May 2019, 12:23:32 UTC |
29f87d1 | Clément Pernet | 03 May 2019, 12:23:09 UTC | update changelog | 03 May 2019, 12:23:09 UTC |
db49647 | Clément Pernet | 03 May 2019, 12:17:28 UTC | Merge pull request #260 from linbox-team/artihprog-separate-precond ArithProg Charpoly: separate preconditionner from main algorithm | 03 May 2019, 12:17:28 UTC |
bce63aa | Clément Pernet | 03 May 2019, 12:14:15 UTC | Merge pull request #256 from linbox-team/parallel-RankProfile-encapsulation-of-ParSeqHelper Wrapped Rank as well as bother Row and Column Rankprofile with no longer the need of using a PAR_BLOCK to label the parallel region | 03 May 2019, 12:14:15 UTC |
59ff98d | ZHG | 03 May 2019, 07:55:40 UTC | Merge branch 'parallel-RankProfile-encapsulation-of-ParSeqHelper' of https://github.com/linbox-team/fflas-ffpack into parallel-RankProfile-encapsulation-of-ParSeqHelper | 03 May 2019, 07:55:40 UTC |
83fd234 | ZHG | 03 May 2019, 07:54:52 UTC | Cleaned up the test-rankprofile according to comments after code review | 03 May 2019, 07:54:52 UTC |
5ebce5e | Clément Pernet | 02 May 2019, 16:09:09 UTC | Merge pull request #251 from linbox-team/fgemv-with-ParSeqHelper Fgemv with par seq helper | 02 May 2019, 16:09:09 UTC |
f603cf0 | Clément Pernet | 02 May 2019, 16:04:21 UTC | Merge pull request #252 from linbox-team/parallel-solve-encapsulation-of-ParSeqHelper self-standing parallel routine named pSolve for the routine Solve added and cleaned up | 02 May 2019, 16:04:21 UTC |
f3de754 | Clément Pernet | 02 May 2019, 16:02:58 UTC | Merge pull request #254 from linbox-team/parallel-det-encapsulation-of-ParSeqHelper Wrapped Det into pDet so that no need to use PAR_BLOCK to label the parallel region | 02 May 2019, 16:02:58 UTC |
e198d81 | Clément Pernet | 02 May 2019, 16:01:17 UTC | Merge pull request #255 from linbox-team/parallel-pluq-encapsulation-of-ParSeqHelper Wrapped PLUQ into pPLUQ without the need to use PAR_BLOCK for labelling the parallel region | 02 May 2019, 16:01:17 UTC |
4341e2e | Clément Pernet | 02 May 2019, 15:57:24 UTC | tilrecursive by default for parallel rank profiles | 02 May 2019, 15:57:24 UTC |
6213fc2 | Clément Pernet | 02 May 2019, 15:49:51 UTC | Merge pull request #257 from linbox-team/parallel-EchelonForm-encapsulation-of-ParSeqHelper Wrappped EchelonForm related functions into their parallel routines with no more need for PAR_BLOCK | 02 May 2019, 15:49:51 UTC |
e7ffbc3 | Clément Pernet | 02 May 2019, 15:16:23 UTC | add precompiled interfaces for parallel echelon | 02 May 2019, 15:16:23 UTC |
d4fa581 | Clément Pernet | 02 May 2019, 15:16:03 UTC | tile recursive by default for parallel echelon | 02 May 2019, 15:16:03 UTC |
f53c3df | ZHG | 02 May 2019, 12:03:10 UTC | Wrappped EchelonForm related functions into their parallel routines with no more need for PAR_BLOCK | 02 May 2019, 12:03:10 UTC |
4e89e05 | ZHG | 02 May 2019, 10:56:51 UTC | Wrapped Rank as well as bother Row and Column Rankprofile with no longer the need of using a PAR_BLOCK to label the parallel region | 02 May 2019, 10:56:51 UTC |
96cefb7 | ZHG | 02 May 2019, 09:21:13 UTC | Wrapped PLUQ into pPLUQ without the need to use PAR_BLOCK for labelling the parallel region | 02 May 2019, 09:21:13 UTC |
6a73e1d | ZHG | 02 May 2019, 07:48:44 UTC | Wrapped Det into pDet so that no need to use PAR_BLOCK to label the parallel region | 02 May 2019, 07:48:44 UTC |
ae22bf1 | ZHG | 30 April 2019, 15:53:56 UTC | cleaned up the test-solve according to comments after code review | 30 April 2019, 15:53:56 UTC |
fa644c2 | ZHG | 30 April 2019, 15:42:13 UTC | Restrcutured the fgemv for sequential helper according to the comments after code review | 30 April 2019, 15:42:13 UTC |
8337c27 | ZHG | 30 April 2019, 13:37:05 UTC | cleaned up the test-solve | 30 April 2019, 13:37:05 UTC |
7dcd386 | ZHG | 30 April 2019, 13:07:12 UTC | Cleaned up according to comments after code review | 30 April 2019, 13:07:12 UTC |
0cc14c3 | Clément Pernet | 30 April 2019, 12:25:02 UTC | protect profiling verbosity | 30 April 2019, 12:25:02 UTC |
8559f91 | ZHG | 30 April 2019, 09:34:26 UTC | self-standing parallel routine named pSolve for the routine Solve added and cleaned up | 30 April 2019, 09:34:26 UTC |
a3ff8ca | Clément Pernet | 30 April 2019, 08:15:56 UTC | expose preconditionning degree as a parameter | 30 April 2019, 08:15:56 UTC |
34d85b5 | Clément Pernet | 29 April 2019, 13:03:51 UTC | Merge pull request #246 from linbox-team/forward-EchelonForm-with-templated-PLUQ Forward echelon form with templated pluq | 29 April 2019, 13:03:51 UTC |
fb13e86 | Clément Pernet | 29 April 2019, 13:02:48 UTC | remove empty lines | 29 April 2019, 13:02:48 UTC |
b64517d | ZHG | 29 April 2019, 12:38:29 UTC | Cleaned up according to comments resulting from code review | 29 April 2019, 12:38:29 UTC |
3f4963e | ZHG | 29 April 2019, 12:20:31 UTC | Merge branch 'forward-EchelonForm-with-templated-PLUQ' of https://github.com/linbox-team/fflas-ffpack into forward-EchelonForm-with-templated-PLUQ | 29 April 2019, 12:20:31 UTC |
0ff06f6 | ZHG | 29 April 2019, 12:19:08 UTC | Cleaned up according to comments resulting from code review | 29 April 2019, 12:19:08 UTC |
65e488b | Clément Pernet | 29 April 2019, 11:10:29 UTC | Merge branch 'master' into forward-EchelonForm-with-templated-PLUQ | 29 April 2019, 11:10:29 UTC |
4d5d705 | Clément Pernet | 29 April 2019, 08:00:49 UTC | Merge pull request #245 from linbox-team/forward-solve-with-templated-PLUQ Forward solve with templated pluq | 29 April 2019, 08:00:49 UTC |