4040 * | 65..128 | FL128 | FL128 | FL128 | FL128 |
4141 * | 129..256 | FL256 | FL256 | FL256 | FL256 |
4242 */
43- fl_tier_width_t fl_tier_select (uint32 n , fl_elem_width_t t );
43+ extern fl_tier_width_t fl_tier_select (uint32 n , fl_elem_width_t t );
4444
4545/* Required size for the tier (selected by fl_tier_select(N, T)).
4646 * Determines the sizes of pack output and unpack input buffers exactly.
4747 */
48- size_t fl_required_bytes (uint32 n , uint8 w , fl_elem_width_t t );
48+ extern size_t fl_required_bytes (uint32 n , uint8 w , fl_elem_width_t t );
4949
5050/* Bytes the encoded output carries for N elements (<= fl_required_bytes).
5151 * Matches the return of fl_pack / fl_pack_ffor; useful for sizing the
5252 * truncated prefix without running the encoder. */
53- size_t fl_result_bytes (uint32 n , uint8 w , fl_elem_width_t t );
53+ extern size_t fl_result_bytes (uint32 n , uint8 w , fl_elem_width_t t );
5454
5555/* Required alignment for the _packed_ input and output buffers.
5656 * Recommended alignment for the input and output _values_.
5757 */
58- size_t fl_alignment (uint32 n , fl_elem_width_t t );
58+ extern size_t fl_alignment (uint32 n , fl_elem_width_t t );
5959
6060/* Number of input ELEMENTS the kernel reads -- callers must provide
6161 * at least this many readable elements at `values` (positions past N
6262 * are read but only the [0..N) outputs are meaningful). */
63- uint32 fl_input_count (uint32 n , fl_elem_width_t t );
63+ extern uint32 fl_input_count (uint32 n , fl_elem_width_t t );
6464
6565/* Byte size of the input buffer (= fl_input_count() * t / 8). */
66- size_t fl_input_bytes (uint32 n , fl_elem_width_t t );
66+ extern size_t fl_input_bytes (uint32 n , fl_elem_width_t t );
6767
6868/*
6969 * Plain pack / unpack.
@@ -79,8 +79,8 @@ size_t fl_input_bytes(uint32 n, fl_elem_width_t t);
7979 * W = 0 (constant block) is a special case: fl_pack returns 0 and
8080 * writes nothing; fl_unpack fills outputs [0..N) with 0.
8181 */
82- size_t fl_pack (const void * values , void * packed , uint32 n , uint8 w , fl_elem_width_t t );
83- void fl_unpack (const void * packed , void * values , uint32 n , uint8 w , fl_elem_width_t t );
82+ extern size_t fl_pack (const void * values , void * packed , uint32 n , uint8 w , fl_elem_width_t t );
83+ extern void fl_unpack (const void * packed , void * values , uint32 n , uint8 w , fl_elem_width_t t );
8484
8585/*
8686 * FFOR (Frame Of Reference) variants.
@@ -92,7 +92,7 @@ void fl_unpack(const void *packed, void *values, uint32 n, uint8 w, fl_elem_widt
9292 * W = 0: fl_pack_ffor returns 0 and writes nothing; fl_unpack_ffor
9393 * fills outputs [0..N) with `base`.
9494 */
95- size_t fl_pack_ffor (const void * values , void * packed , uint32 n , uint8 w , fl_elem_width_t t ,
96- uint64 base );
97- void fl_unpack_ffor (const void * packed , void * values , uint32 n , uint8 w , fl_elem_width_t t ,
98- uint64 base );
95+ extern size_t fl_pack_ffor (const void * values , void * packed , uint32 n , uint8 w , fl_elem_width_t t ,
96+ uint64 base );
97+ extern void fl_unpack_ffor (const void * packed , void * values , uint32 n , uint8 w , fl_elem_width_t t ,
98+ uint64 base );
0 commit comments