Commit Graph

53 Commits

Author SHA1 Message Date
Michael Neumann
a3a79cc599 Add some more debug assertions 2016-02-27 20:45:11 +01:00
Michael Neumann
51c5b7638f BUG FIX! If we cover a row and column, we have to leave the column
loop.

This degrades performance by a LOT!
2016-02-27 20:44:02 +01:00
Michael Neumann
75a5f20802 Add test case for WeightMatrix 2016-02-27 19:30:33 +01:00
Michael Neumann
999470f6ed Add test cases for SquareMatrix 2016-02-27 19:21:08 +01:00
Michael Neumann
1e3068fc29 Version 0.1.0 2015-12-21 15:48:24 +01:00
Michael Neumann
1abfbf5ada Add todo itemAdd todo itemAdd todo itemAdd todo itemAdd todo itemAdd todo itemAdd todo itemAdd todo item 2015-11-29 17:31:11 +01:00
Michael Neumann
f47fb4eb32 Use associated type 2015-11-29 17:18:55 +01:00
Michael Neumann
482bf47cd0 Introduce trait Weights 2015-11-29 17:14:50 +01:00
Michael Neumann
b69aa2c942 rustfmt 2015-11-29 16:31:58 +01:00
Michael Neumann
57dbd9c7b4 rustfmt 2015-11-29 16:31:50 +01:00
Michael Neumann
2eb5f8994f Move WeightMatrix into it's own module 2015-11-29 16:30:27 +01:00
Michael Neumann
98b367d434 Use more compact representation of Mark 2015-11-29 16:24:36 +01:00
Michael Neumann
883165b0d5 Refactor 2015-11-29 16:18:19 +01:00
Michael Neumann
5b5849cd40 Operating directly on bit-representation is not much faster. 2015-11-29 16:10:34 +01:00
Michael Neumann
1a15e8f7ac Refactor 2015-11-29 15:45:26 +01:00
Michael Neumann
856ea59d70 Improve performance by replacing bit_vec with fixedbitset.
Before:
    test bench_solve_100  ... bench:      53,365 ns/iter (+/- 651)
    test bench_solve_1000 ... bench:   5,864,809 ns/iter (+/- 102,059)
    test bench_solve_2000 ... bench:  34,347,333 ns/iter (+/- 200,639)

After:

    test bench_solve_100  ... bench:      41,574 ns/iter (+/- 765)
    test bench_solve_1000 ... bench:   4,693,452 ns/iter (+/- 189,201)
    test bench_solve_2000 ... bench:  29,954,973 ns/iter (+/- 438,573)
2015-11-29 15:03:57 +01:00
Michael Neumann
c61d7152a3 Refactor a bit 2015-11-29 14:53:51 +01:00
Michael Neumann
a9bf86e22a Only require PartialOrd, not Ord and Eq. This enables us to use floats as weights. 2015-10-30 13:07:05 +01:00
Michael Neumann
7abc850887 Add WeightMatrix::from_fn() 2015-10-30 12:51:05 +01:00
Michael Neumann
188dc61817 Fix warning 2015-10-30 10:27:06 +01:00
Michael Neumann
4ee267acc5 rustfmt 2015-10-26 00:12:54 +01:00
Michael Neumann
9619f69a4e Add keyword to Cargo.toml and release new version 2015-10-20 23:32:52 +02:00
Michael Neumann
4812071ec3 Add TODO 2015-10-20 23:31:44 +02:00
Michael Neumann
e4f3d74ad6 Rename benchmarks 2015-10-20 23:31:21 +02:00
Michael Neumann
7177a250e5 Hide mark_matrix::Mark 2015-10-20 13:47:54 +02:00
Michael Neumann
39fc8be008 Use an owned slice instead of Vec.
We never going to modify the shape of the matrix.
2015-10-20 13:38:15 +02:00
Michael Neumann
ec7ec7fa4f Add test case 2015-10-20 13:22:36 +02:00
Michael Neumann
8a9221d9fd license 2015-10-20 01:25:35 +02:00
Michael Neumann
7c4576f62a Add meta data 2015-10-20 01:24:13 +02:00
Michael Neumann
1fa471a35d Improve performance
Before:

    test bench_solve100  ... bench:      59,998 ns/iter (+/- 4,502)
    test bench_solve1000 ... bench:   6,761,411 ns/iter (+/- 379,337)

After:

    test bench_solve100  ... bench:      55,945 ns/iter (+/- 1,682)
    test bench_solve1000 ... bench:   6,116,007 ns/iter (+/- 277,546)
2015-10-20 01:18:25 +02:00
Michael Neumann
a3a55a5a57 Do not always inline 2015-10-20 01:02:18 +02:00
Michael Neumann
d33071e044 Improve performance of map_row()
Before:

    test bench_solve100  ... bench:      64,727 ns/iter (+/- 691)
    test bench_solve1000 ... bench:   7,160,735 ns/iter (+/- 315,280)

After:

    test bench_solve100  ... bench:      59,998 ns/iter (+/- 4,502)
    test bench_solve1000 ... bench:   6,761,411 ns/iter (+/- 379,337)
2015-10-20 01:00:25 +02:00
Michael Neumann
f8329d5994 Add 1000x1000 benchmark 2015-10-20 00:51:58 +02:00
Michael Neumann
5738c7b969 Add benchmark 2015-10-20 00:48:12 +02:00
Michael Neumann
36e85fc429 Add from_fn() 2015-10-20 00:40:56 +02:00
Michael Neumann
784f499137 Add test case 2015-10-20 00:29:29 +02:00
Michael Neumann
fd0363ef6f Simplify the code 2015-10-20 00:18:47 +02:00
Michael Neumann
8faebad157 Refactor MarkMatrix into mark_matrix.rs 2015-10-20 00:17:03 +02:00
Michael Neumann
be964d166e Refactor 2015-10-20 00:09:02 +02:00
Michael Neumann
ee18f22c9d Silence all warnings 2015-10-19 23:49:18 +02:00
Michael Neumann
0517aa474b Get rid of nalgebra. Simplify traits 2015-10-19 23:31:40 +02:00
Michael Neumann
6d85e2b944 Don't use DMat 2015-10-19 23:18:42 +02:00
Michael Neumann
e7168b8b43 Remove unused code 2015-10-19 23:13:14 +02:00
Michael Neumann
86ba0e26f7 Refactor Coverage out into coverage.rs 2015-10-19 23:11:38 +02:00
Michael Neumann
566f848524 Use BitVec 2015-10-19 23:03:22 +02:00
Michael Neumann
018162fb35 Fix test 2015-10-19 22:51:42 +02:00
Michael Neumann
3b0bc1411d Rename compute() -> solve_assignment() and make public 2015-10-19 22:50:12 +02:00
Michael Neumann
f487672864 Use a simple SquareMatrix implementation instead of DMat 2015-10-19 22:48:31 +02:00
Michael Neumann
6ffaa8f0db Add travis image 2015-10-19 19:36:50 +02:00
Michael Neumann
ab92139e1e TODO 2015-10-19 19:32:48 +02:00