summaryrefslogtreecommitdiffstats
path: root/lib/librte_sched/rte_reciprocal.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/librte_sched/rte_reciprocal.h')
-rw-r--r--lib/librte_sched/rte_reciprocal.h41
1 files changed, 0 insertions, 41 deletions
diff --git a/lib/librte_sched/rte_reciprocal.h b/lib/librte_sched/rte_reciprocal.h
deleted file mode 100644
index 5e21f096..00000000
--- a/lib/librte_sched/rte_reciprocal.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Reciprocal divide
- *
- * Used with permission from original authors
- * Hannes Frederic Sowa and Daniel Borkmann
- *
- * This algorithm is based on the paper "Division by Invariant
- * Integers Using Multiplication" by Torbjörn Granlund and Peter
- * L. Montgomery.
- *
- * The assembler implementation from Agner Fog, which this code is
- * based on, can be found here:
- * http://www.agner.org/optimize/asmlib.zip
- *
- * This optimization for A/B is helpful if the divisor B is mostly
- * runtime invariant. The reciprocal of B is calculated in the
- * slow-path with reciprocal_value(). The fast-path can then just use
- * a much faster multiplication operation with a variable dividend A
- * to calculate the division A/B.
- */
-
-#ifndef _RTE_RECIPROCAL_H_
-#define _RTE_RECIPROCAL_H_
-
-#include <stdint.h>
-
-struct rte_reciprocal {
- uint32_t m;
- uint8_t sh1, sh2;
-};
-
-static inline uint32_t rte_reciprocal_divide(uint32_t a, struct rte_reciprocal R)
-{
- uint32_t t = (uint32_t)(((uint64_t)a * R.m) >> 32);
-
- return (t + ((a - t) >> R.sh1)) >> R.sh2;
-}
-
-struct rte_reciprocal rte_reciprocal_value(uint32_t d);
-
-#endif /* _RTE_RECIPROCAL_H_ */