| Copyright | (c) Eric Crockett 2011-2017 Chris Peikert 2011-2017 |
|---|---|
| License | GPL-2 |
| Maintainer | ecrockett0@email.com |
| Stability | experimental |
| Portability | POSIX |
| Safe Haskell | None |
| Language | Haskell2010 |
Crypto.Lol.Benchmarks
Description
Infrastructure for benchmarking Lol.
- bench :: NFData b => (a -> b) -> a -> Bench params
- benchM :: (forall m. MonadRandom m => m (Bench a)) -> Bench a
- benchIO :: NFData b => IO b -> Bench params
- benchGroup :: Monad rnd => String -> [rnd Benchmark] -> rnd Benchmark
- genBenchArgs :: (GenArgs bnch, ResultOf bnch ~ Bench a, MonadRandom rnd) => String -> bnch -> Proxy a -> rnd Benchmark
- data Bench params
- data Benchmark :: *
- class NFData a
- addGen :: Proxy gen -> Proxy '(t, m, r) -> Proxy '(t, m, r, gen)
Documentation
benchM :: (forall m. MonadRandom m => m (Bench a)) -> Bench a Source #
Use when you need randomness outside the benchmark.
benchIO :: NFData b => IO b -> Bench params Source #
Wrapper for criterion's nfIO. Use when there is randomness inside the
benchmark.
benchGroup :: Monad rnd => String -> [rnd Benchmark] -> rnd Benchmark Source #
Wrapper for criterion's bgroup
genBenchArgs :: (GenArgs bnch, ResultOf bnch ~ Bench a, MonadRandom rnd) => String -> bnch -> Proxy a -> rnd Benchmark Source #
Converts a function mapping zero or more arguments to a Bench a
by generating random inputs to the function
Wrapper around criterion's Benchmarkable, with phantom parameters.
Specification of a collection of benchmarks and environments. A benchmark may consist of:
- An environment that creates input data for benchmarks, created
with
env. - A single
Benchmarkableitem with a name, created withbench. - A (possibly nested) group of
Benchmarks, created withbgroup.
A class of types that can be fully evaluated.
Since: 1.1.0.0
Instances
| NFData Bool | |
| NFData Char | |
| NFData Double | |
| NFData Float | |
| NFData Int | |
| NFData Int8 | |
| NFData Int16 | |
| NFData Int32 | |
| NFData Int64 | |
| NFData Integer | |
| NFData Word | |
| NFData Word8 | |
| NFData Word16 | |
| NFData Word32 | |
| NFData Word64 | |
| NFData CallStack | Since: 1.4.2.0 |
| NFData TypeRep | NOTE: Only defined for Since: 1.4.0.0 |
| NFData () | |
| NFData TyCon | NOTE: Only defined for Since: 1.4.0.0 |
| NFData Version | Since: 1.3.0.0 |
| NFData ByteString | |
| NFData Natural | Since: 1.4.0.0 |
| NFData Void | Since: 1.4.0.0 |
| NFData Unique | Since: 1.4.0.0 |
| NFData ThreadId | Since: 1.4.0.0 |
| NFData ExitCode | Since: 1.4.2.0 |
| NFData CChar | Since: 1.4.0.0 |
| NFData CSChar | Since: 1.4.0.0 |
| NFData CUChar | Since: 1.4.0.0 |
| NFData CShort | Since: 1.4.0.0 |
| NFData CUShort | Since: 1.4.0.0 |
| NFData CInt | Since: 1.4.0.0 |
| NFData CUInt | Since: 1.4.0.0 |
| NFData CLong | Since: 1.4.0.0 |
| NFData CULong | Since: 1.4.0.0 |
| NFData CLLong | Since: 1.4.0.0 |
| NFData CULLong | Since: 1.4.0.0 |
| NFData CFloat | Since: 1.4.0.0 |
| NFData CDouble | Since: 1.4.0.0 |
| NFData CPtrdiff | Since: 1.4.0.0 |
| NFData CSize | Since: 1.4.0.0 |
| NFData CWchar | Since: 1.4.0.0 |
| NFData CSigAtomic | Since: 1.4.0.0 |
| NFData CClock | Since: 1.4.0.0 |
| NFData CTime | Since: 1.4.0.0 |
| NFData CUSeconds | Since: 1.4.0.0 |
| NFData CSUSeconds | Since: 1.4.0.0 |
| NFData CFile | Since: 1.4.0.0 |
| NFData CFpos | Since: 1.4.0.0 |
| NFData CJmpBuf | Since: 1.4.0.0 |
| NFData CIntPtr | Since: 1.4.0.0 |
| NFData CUIntPtr | Since: 1.4.0.0 |
| NFData CIntMax | Since: 1.4.0.0 |
| NFData CUIntMax | Since: 1.4.0.0 |
| NFData All | Since: 1.4.0.0 |
| NFData Any | Since: 1.4.0.0 |
| NFData Fingerprint | Since: 1.4.0.0 |
| NFData SrcLoc | Since: 1.4.2.0 |
| NFData IntSet | |
| NFData Measured | |
| NFData Outliers | |
| NFData OutlierEffect | |
| NFData OutlierVariance | |
| NFData Regression | |
| NFData SampleAnalysis | |
| NFData KDE | |
| NFData Report | |
| NFData DataRecord | |
| NFData KB2Sum | |
| NFData KBNSum | |
| NFData KahanSum | |
| NFData Doc | |
| NFData TextDetails | |
| NFData Estimate | |
| NFData LocalTime | |
| NFData ZonedTime | |
| NFData UUID | |
| NFData a => NFData [a] | |
| NFData a => NFData (Maybe a) | |
| NFData a => NFData (Ratio a) | |
| NFData (Ptr a) | Since: 1.4.2.0 |
| NFData (FunPtr a) | Since: 1.4.2.0 |
| NFData a => NFData (Sum a) | Since: 1.4.0.0 |
| NFData a => NFData (Product a) | Since: 1.4.0.0 |
| NFData a => NFData (Identity a) | Since: 1.4.0.0 |
| NFData a => NFData (Min a) | Since: 1.4.2.0 |
| NFData a => NFData (Max a) | Since: 1.4.2.0 |
| NFData a => NFData (First a) | Since: 1.4.2.0 |
| NFData a => NFData (Last a) | Since: 1.4.2.0 |
| NFData m => NFData (WrappedMonoid m) | Since: 1.4.2.0 |
| NFData a => NFData (Option a) | Since: 1.4.2.0 |
| NFData a => NFData (NonEmpty a) | Since: 1.4.2.0 |
| NFData (Fixed a) | Since: 1.3.0.0 |
| NFData a => NFData (Complex a) | |
| NFData (StableName a) | Since: 1.4.0.0 |
| NFData a => NFData (ZipList a) | Since: 1.4.0.0 |
| NFData a => NFData (Dual a) | Since: 1.4.0.0 |
| NFData a => NFData (First a) | Since: 1.4.0.0 |
| NFData a => NFData (Last a) | Since: 1.4.0.0 |
| NFData (IORef a) | NOTE: Only strict in the reference and not the referenced value. Since: 1.4.2.0 |
| NFData a => NFData (Down a) | Since: 1.4.0.0 |
| NFData (MVar a) | NOTE: Only strict in the reference and not the referenced value. Since: 1.4.2.0 |
| NFData a => NFData (Digit a) | |
| NFData a => NFData (Node a) | |
| NFData a => NFData (Elem a) | |
| NFData a => NFData (FingerTree a) | |
| NFData a => NFData (IntMap a) | |
| NFData a => NFData (Seq a) | |
| NFData a => NFData (Set a) | |
| NFData a => NFData (DList a) | |
| NFData a => NFData (Vector a) | |
| NFData a => NFData (Complex a) | |
| NFData a => NFData (Doc a) | |
| NFData a => NFData (AnnotDetails a) | |
| NFData a => NFData (HashSet a) | |
| NFData (Vector a) | |
| NFData (Vector a) | |
| NFData (Vector a) | |
| NFData (a -> b) | This instance is for convenience and consistency with Since: 1.3.0.0 |
| (NFData a, NFData b) => NFData (Either a b) | |
| (NFData a, NFData b) => NFData (a, b) | |
| (NFData k, NFData v) => NFData (HashMap k v) | |
| (NFData k, NFData a) => NFData (Map k a) | |
| (NFData a, NFData b) => NFData (Array a b) | |
| (NFData i, NFData r) => NFData (IResult i r) | |
| (NFData a, NFData b) => NFData (Arg a b) | Since: 1.4.2.0 |
| NFData (Proxy k a) | Since: 1.4.0.0 |
| NFData (STRef s a) | NOTE: Only strict in the reference and not the referenced value. Since: 1.4.2.0 |
| (NFData k, NFData v) => NFData (Leaf k v) | |
| NFData (MVector s a) | |
| NFData (MVector s a) | |
| NFData (MVector s a) | |
| (NFData a, NFData b, NFData c) => NFData (a, b, c) | |
| NFData a => NFData (Const k a b) | Since: 1.4.0.0 |
| NFData r => NFData (RRq k q r) | |
| NFData z => NFData (ZqBasic k q z) | |
| (Tensor t, Fact m, NFData r, TElt t r, NFData (CRTExt r), TElt t (CRTExt r)) => NFData (Cyc t m r) | |
| NFData b => NFData (Tagged k s b) | |
| (NFData a, NFData b, NFData c, NFData d) => NFData (a, b, c, d) | |
| (Tensor t, Fact m, NFElt r, TElt t r, TElt t (CRTExt r)) => NFData (UCyc t m rep r) | |
| (NFData a1, NFData a2, NFData a3, NFData a4, NFData a5) => NFData (a1, a2, a3, a4, a5) | |
| NFData (Cyc t s z) => NFData (Linear t z e r s) | |
| (NFData a1, NFData a2, NFData a3, NFData a4, NFData a5, NFData a6) => NFData (a1, a2, a3, a4, a5, a6) | |
| (NFData a1, NFData a2, NFData a3, NFData a4, NFData a5, NFData a6, NFData a7) => NFData (a1, a2, a3, a4, a5, a6, a7) | |
| (NFData a1, NFData a2, NFData a3, NFData a4, NFData a5, NFData a6, NFData a7, NFData a8) => NFData (a1, a2, a3, a4, a5, a6, a7, a8) | |
| (NFData a1, NFData a2, NFData a3, NFData a4, NFData a5, NFData a6, NFData a7, NFData a8, NFData a9) => NFData (a1, a2, a3, a4, a5, a6, a7, a8, a9) | |