mutek/lut.h header reference
[Kernel services module]

The source code of this header can be browsed online.

Description [link] 

This header file provides a clean way to define and use small compile-time lookup tables. The LUTs are stored in a single integer and accessed using bitwise operations.

The lookup table can be defined either in order or with a designated initialization syntax:

// a 64 bits LUT of at most 16 entries of 4 bits each
// with implicit indices
lut_16_4_t fibo = XLUT_16_4_DEF(0, 1, 1, 2, 3, 5, 8, 13);

// a 32 bits LUT of at most 8 entries of 4 bits each
// with explicit indices
lut_8_4_t square = DLUT_8_4_DEF(0, 1,
1, 1,
2, 4,
3, 9);

Access to the LUT is performed by a specific macro:

int_fast8_t sq3 = LUT_8_4_GET(3, square);

Alternatively, LUT definition and access can be performed at the same time:

bool_t x_is_prime = XLUT_32_1(x, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0);

Members [link] 

Types [link] 

Macros [link] 

Members detail [link] 

#define DLUT_16_2(x, ...) [link] 

This macro is declared in mutek/lut.h source file, line 248.

This macro defines a shift based lookup table of 16 entries of 2 bits each and accesses it.

See also DLUT_16_2_DEF and #DLUT_16_2_GET.

#define DLUT_16_2_DEF(...) [link] 

This macro is declared in mutek/lut.h source file, line 235.

This macro computes an integer constant usable as a shift based lookup table of 16 entries of 2 bits each. The macro takes a list of index and value pairs as parameters.

#define DLUT_16_4(x, ...) [link] 

This macro is declared in mutek/lut.h source file, line 527.

This macro defines a shift based lookup table of 16 entries of 4 bits each and accesses it.

See also DLUT_16_4_DEF and #DLUT_16_4_GET.

#define DLUT_16_4_DEF(...) [link] 

This macro is declared in mutek/lut.h source file, line 514.

This macro computes an integer constant usable as a shift based lookup table of 16 entries of 4 bits each. The macro takes a list of index and value pairs as parameters.

#define DLUT_2_16(x, ...) [link] 

This macro is declared in mutek/lut.h source file, line 99.

This macro defines a shift based lookup table of 2 entries of 16 bits each and accesses it.

See also DLUT_2_16_DEF and #DLUT_2_16_GET.

#define DLUT_2_16_DEF(...) [link] 

This macro is declared in mutek/lut.h source file, line 86.

This macro computes an integer constant usable as a shift based lookup table of 2 entries of 16 bits each. The macro takes a list of index and value pairs as parameters.

#define DLUT_2_32(x, ...) [link] 

This macro is declared in mutek/lut.h source file, line 378.

This macro defines a shift based lookup table of 2 entries of 32 bits each and accesses it.

See also DLUT_2_32_DEF and #DLUT_2_32_GET.

#define DLUT_2_32_DEF(...) [link] 

This macro is declared in mutek/lut.h source file, line 365.

This macro computes an integer constant usable as a shift based lookup table of 2 entries of 32 bits each. The macro takes a list of index and value pairs as parameters.

#define DLUT_32_1(x, ...) [link] 

This macro is declared in mutek/lut.h source file, line 343.

This macro defines a shift based lookup table of 32 entries of 1 bits each and accesses it.

See also DLUT_32_1_DEF and #DLUT_32_1_GET.

#define DLUT_32_1_DEF(...) [link] 

This macro is declared in mutek/lut.h source file, line 330.

This macro computes an integer constant usable as a shift based lookup table of 32 entries of 1 bits each. The macro takes a list of index and value pairs as parameters.

#define DLUT_32_2(x, ...) [link] 

This macro is declared in mutek/lut.h source file, line 622.

This macro defines a shift based lookup table of 32 entries of 2 bits each and accesses it.

See also DLUT_32_2_DEF and #DLUT_32_2_GET.

#define DLUT_32_2_DEF(...) [link] 

This macro is declared in mutek/lut.h source file, line 609.

This macro computes an integer constant usable as a shift based lookup table of 32 entries of 2 bits each. The macro takes a list of index and value pairs as parameters.

#define DLUT_4_16(x, ...) [link] 

This macro is declared in mutek/lut.h source file, line 417.

This macro defines a shift based lookup table of 4 entries of 16 bits each and accesses it.

See also DLUT_4_16_DEF and #DLUT_4_16_GET.

#define DLUT_4_16_DEF(...) [link] 

This macro is declared in mutek/lut.h source file, line 404.

This macro computes an integer constant usable as a shift based lookup table of 4 entries of 16 bits each. The macro takes a list of index and value pairs as parameters.

#define DLUT_4_8(x, ...) [link] 

This macro is declared in mutek/lut.h source file, line 138.

This macro defines a shift based lookup table of 4 entries of 8 bits each and accesses it.

See also DLUT_4_8_DEF and #DLUT_4_8_GET.

#define DLUT_4_8_DEF(...) [link] 

This macro is declared in mutek/lut.h source file, line 125.

This macro computes an integer constant usable as a shift based lookup table of 4 entries of 8 bits each. The macro takes a list of index and value pairs as parameters.

#define DLUT_64_1(x, ...) [link] 

This macro is declared in mutek/lut.h source file, line 781.

This macro defines a shift based lookup table of 64 entries of 1 bits each and accesses it.

See also DLUT_64_1_DEF and #DLUT_64_1_GET.

#define DLUT_64_1_DEF(...) [link] 

This macro is declared in mutek/lut.h source file, line 768.

This macro computes an integer constant usable as a shift based lookup table of 64 entries of 1 bits each. The macro takes a list of index and value pairs as parameters.

#define DLUT_8_4(x, ...) [link] 

This macro is declared in mutek/lut.h source file, line 185.

This macro defines a shift based lookup table of 8 entries of 4 bits each and accesses it.

See also DLUT_8_4_DEF and #DLUT_8_4_GET.

#define DLUT_8_4_DEF(...) [link] 

This macro is declared in mutek/lut.h source file, line 172.

This macro computes an integer constant usable as a shift based lookup table of 8 entries of 4 bits each. The macro takes a list of index and value pairs as parameters.

#define DLUT_8_8(x, ...) [link] 

This macro is declared in mutek/lut.h source file, line 464.

This macro defines a shift based lookup table of 8 entries of 8 bits each and accesses it.

See also DLUT_8_8_DEF and #DLUT_8_8_GET.

#define DLUT_8_8_DEF(...) [link] 

This macro is declared in mutek/lut.h source file, line 451.

This macro computes an integer constant usable as a shift based lookup table of 8 entries of 8 bits each. The macro takes a list of index and value pairs as parameters.

#define LUT_16_2_GET(x, lut) [link] 

This macro is declared in mutek/lut.h source file, line 243.

This macro accesses a shift based lookup table of 16 entries of 2 bits each.

#define LUT_16_4_GET(x, lut) [link] 

This macro is declared in mutek/lut.h source file, line 522.

This macro accesses a shift based lookup table of 16 entries of 4 bits each.

#define LUT_2_16_GET(x, lut) [link] 

This macro is declared in mutek/lut.h source file, line 94.

This macro accesses a shift based lookup table of 2 entries of 16 bits each.

#define LUT_2_32_GET(x, lut) [link] 

This macro is declared in mutek/lut.h source file, line 373.

This macro accesses a shift based lookup table of 2 entries of 32 bits each.

#define LUT_32_1_GET(x, lut) [link] 

This macro is declared in mutek/lut.h source file, line 338.

This macro accesses a shift based lookup table of 32 entries of 1 bits each.

#define LUT_32_2_GET(x, lut) [link] 

This macro is declared in mutek/lut.h source file, line 617.

This macro accesses a shift based lookup table of 32 entries of 2 bits each.

#define LUT_4_16_GET(x, lut) [link] 

This macro is declared in mutek/lut.h source file, line 412.

This macro accesses a shift based lookup table of 4 entries of 16 bits each.

#define LUT_4_8_GET(x, lut) [link] 

This macro is declared in mutek/lut.h source file, line 133.

This macro accesses a shift based lookup table of 4 entries of 8 bits each.

#define LUT_64_1_GET(x, lut) [link] 

This macro is declared in mutek/lut.h source file, line 776.

This macro accesses a shift based lookup table of 64 entries of 1 bits each.

#define LUT_8_4_GET(x, lut) [link] 

This macro is declared in mutek/lut.h source file, line 180.

This macro accesses a shift based lookup table of 8 entries of 4 bits each.

#define LUT_8_8_GET(x, lut) [link] 

This macro is declared in mutek/lut.h source file, line 459.

This macro accesses a shift based lookup table of 8 entries of 8 bits each.

#define MUTEK_LUT_H_ [link] 

This macro is declared in mutek/lut.h source file, line 23.

#define XLUT_16_2(x, ...) [link] 

This macro is declared in mutek/lut.h source file, line 253.

This macro defines a shift based lookup table of 16 entries of 2 bits each and accesses it.

See also XLUT_16_2_DEF and #XLUT_16_2_GET.

#define XLUT_16_2_DEF(...) [link] 

This macro is declared in mutek/lut.h source file, line 240.

This macro computes an integer constant usable as a shift based lookup table of 16 entries of 2 bits each. The macro takes a list of values as parameters.

#define XLUT_16_4(x, ...) [link] 

This macro is declared in mutek/lut.h source file, line 532.

This macro defines a shift based lookup table of 16 entries of 4 bits each and accesses it.

See also XLUT_16_4_DEF and #XLUT_16_4_GET.

#define XLUT_16_4_DEF(...) [link] 

This macro is declared in mutek/lut.h source file, line 519.

This macro computes an integer constant usable as a shift based lookup table of 16 entries of 4 bits each. The macro takes a list of values as parameters.

#define XLUT_2_16(x, ...) [link] 

This macro is declared in mutek/lut.h source file, line 104.

This macro defines a shift based lookup table of 2 entries of 16 bits each and accesses it.

See also XLUT_2_16_DEF and #XLUT_2_16_GET.

#define XLUT_2_16_DEF(...) [link] 

This macro is declared in mutek/lut.h source file, line 91.

This macro computes an integer constant usable as a shift based lookup table of 2 entries of 16 bits each. The macro takes a list of values as parameters.

#define XLUT_2_32(x, ...) [link] 

This macro is declared in mutek/lut.h source file, line 383.

This macro defines a shift based lookup table of 2 entries of 32 bits each and accesses it.

See also XLUT_2_32_DEF and #XLUT_2_32_GET.

#define XLUT_2_32_DEF(...) [link] 

This macro is declared in mutek/lut.h source file, line 370.

This macro computes an integer constant usable as a shift based lookup table of 2 entries of 32 bits each. The macro takes a list of values as parameters.

#define XLUT_32_1(x, ...) [link] 

This macro is declared in mutek/lut.h source file, line 348.

This macro defines a shift based lookup table of 32 entries of 1 bits each and accesses it.

See also XLUT_32_1_DEF and #XLUT_32_1_GET.

#define XLUT_32_1_DEF(...) [link] 

This macro is declared in mutek/lut.h source file, line 335.

This macro computes an integer constant usable as a shift based lookup table of 32 entries of 1 bits each. The macro takes a list of values as parameters.

#define XLUT_32_2(x, ...) [link] 

This macro is declared in mutek/lut.h source file, line 627.

This macro defines a shift based lookup table of 32 entries of 2 bits each and accesses it.

See also XLUT_32_2_DEF and #XLUT_32_2_GET.

#define XLUT_32_2_DEF(...) [link] 

This macro is declared in mutek/lut.h source file, line 614.

This macro computes an integer constant usable as a shift based lookup table of 32 entries of 2 bits each. The macro takes a list of values as parameters.

#define XLUT_4_16(x, ...) [link] 

This macro is declared in mutek/lut.h source file, line 422.

This macro defines a shift based lookup table of 4 entries of 16 bits each and accesses it.

See also XLUT_4_16_DEF and #XLUT_4_16_GET.

#define XLUT_4_16_DEF(...) [link] 

This macro is declared in mutek/lut.h source file, line 409.

This macro computes an integer constant usable as a shift based lookup table of 4 entries of 16 bits each. The macro takes a list of values as parameters.

#define XLUT_4_8(x, ...) [link] 

This macro is declared in mutek/lut.h source file, line 143.

This macro defines a shift based lookup table of 4 entries of 8 bits each and accesses it.

See also XLUT_4_8_DEF and #XLUT_4_8_GET.

#define XLUT_4_8_DEF(...) [link] 

This macro is declared in mutek/lut.h source file, line 130.

This macro computes an integer constant usable as a shift based lookup table of 4 entries of 8 bits each. The macro takes a list of values as parameters.

#define XLUT_64_1(x, ...) [link] 

This macro is declared in mutek/lut.h source file, line 786.

This macro defines a shift based lookup table of 64 entries of 1 bits each and accesses it.

See also XLUT_64_1_DEF and #XLUT_64_1_GET.

#define XLUT_64_1_DEF(...) [link] 

This macro is declared in mutek/lut.h source file, line 773.

This macro computes an integer constant usable as a shift based lookup table of 64 entries of 1 bits each. The macro takes a list of values as parameters.

#define XLUT_8_4(x, ...) [link] 

This macro is declared in mutek/lut.h source file, line 190.

This macro defines a shift based lookup table of 8 entries of 4 bits each and accesses it.

See also XLUT_8_4_DEF and #XLUT_8_4_GET.

#define XLUT_8_4_DEF(...) [link] 

This macro is declared in mutek/lut.h source file, line 177.

This macro computes an integer constant usable as a shift based lookup table of 8 entries of 4 bits each. The macro takes a list of values as parameters.

#define XLUT_8_8(x, ...) [link] 

This macro is declared in mutek/lut.h source file, line 469.

This macro defines a shift based lookup table of 8 entries of 8 bits each and accesses it.

See also XLUT_8_8_DEF and #XLUT_8_8_GET.

#define XLUT_8_8_DEF(...) [link] 

This macro is declared in mutek/lut.h source file, line 456.

This macro computes an integer constant usable as a shift based lookup table of 8 entries of 8 bits each. The macro takes a list of values as parameters.

typedef uint32_t lut_16_2_t [link] 

This typedef is declared in mutek/lut.h source file, line 193.

typedef uint64_t lut_16_4_t [link] 

This typedef is declared in mutek/lut.h source file, line 472.

typedef uint32_t lut_2_16_t [link] 

This typedef is declared in mutek/lut.h source file, line 72.

typedef uint64_t lut_2_32_t [link] 

This typedef is declared in mutek/lut.h source file, line 351.

typedef uint32_t lut_32_1_t [link] 

This typedef is declared in mutek/lut.h source file, line 256.

typedef uint64_t lut_32_2_t [link] 

This typedef is declared in mutek/lut.h source file, line 535.

typedef uint64_t lut_4_16_t [link] 

This typedef is declared in mutek/lut.h source file, line 386.

typedef uint32_t lut_4_8_t [link] 

This typedef is declared in mutek/lut.h source file, line 107.

typedef uint64_t lut_64_1_t [link] 

This typedef is declared in mutek/lut.h source file, line 630.

typedef uint32_t lut_8_4_t [link] 

This typedef is declared in mutek/lut.h source file, line 146.

typedef uint64_t lut_8_8_t [link] 

This typedef is declared in mutek/lut.h source file, line 425.

#define DLUT_16_2_DEF_(i0, v0, i1, v1, i2, v2, i3, v3, i4, v4, i5, v5, i6, v6, i7, v7, i8, v8, i9, v9, i10, v10, i11, v11, i12, v12, i13, v13, i14, v14, i15, v15, ...) [link] 

This macro is declared in mutek/lut.h source file, line 195.

This macro is for internal use only.

#define DLUT_16_4_DEF_(i0, v0, i1, v1, i2, v2, i3, v3, i4, v4, i5, v5, i6, v6, i7, v7, i8, v8, i9, v9, i10, v10, i11, v11, i12, v12, i13, v13, i14, v14, i15, v15, ...) [link] 

This macro is declared in mutek/lut.h source file, line 474.

This macro is for internal use only.

#define DLUT_2_16_DEF_(i0, v0, i1, v1, ...) [link] 

This macro is declared in mutek/lut.h source file, line 74.

This macro is for internal use only.

#define DLUT_2_32_DEF_(i0, v0, i1, v1, ...) [link] 

This macro is declared in mutek/lut.h source file, line 353.

This macro is for internal use only.

#define DLUT_32_1_DEF_(i0, v0, i1, v1, i2, v2, i3, v3, i4, v4, i5, v5, i6, v6, i7, v7, i8, v8, i9, v9, i10, v10, i11, v11, i12, v12, i13, v13, i14, v14, i15, v15, i16, v16, i17, v17, i18, v18, i19, v19, i20, v20, i21, v21, i22, v22, i23, v23, i24, v24, i25, v25, i26, v26, i27, v27, i28, v28, i29, v29, i30, v30, i31, v31, ...) [link] 

This macro is declared in mutek/lut.h source file, line 258.

This macro is for internal use only.

#define DLUT_32_2_DEF_(i0, v0, i1, v1, i2, v2, i3, v3, i4, v4, i5, v5, i6, v6, i7, v7, i8, v8, i9, v9, i10, v10, i11, v11, i12, v12, i13, v13, i14, v14, i15, v15, i16, v16, i17, v17, i18, v18, i19, v19, i20, v20, i21, v21, i22, v22, i23, v23, i24, v24, i25, v25, i26, v26, i27, v27, i28, v28, i29, v29, i30, v30, i31, v31, ...) [link] 

This macro is declared in mutek/lut.h source file, line 537.

This macro is for internal use only.

#define DLUT_4_16_DEF_(i0, v0, i1, v1, i2, v2, i3, v3, ...) [link] 

This macro is declared in mutek/lut.h source file, line 388.

This macro is for internal use only.

#define DLUT_4_8_DEF_(i0, v0, i1, v1, i2, v2, i3, v3, ...) [link] 

This macro is declared in mutek/lut.h source file, line 109.

This macro is for internal use only.

#define DLUT_64_1_DEF_(i0, v0, i1, v1, i2, v2, i3, v3, i4, v4, i5, v5, i6, v6, i7, v7, i8, v8, i9, v9, i10, v10, i11, v11, i12, v12, i13, v13, i14, v14, i15, v15, i16, v16, i17, v17, i18, v18, i19, v19, i20, v20, i21, v21, i22, v22, i23, v23, i24, v24, i25, v25, i26, v26, i27, v27, i28, v28, i29, v29, i30, v30, i31, v31, i32, v32, i33, v33, i34, v34, i35, v35, i36, v36, i37, v37, i38, v38, i39, v39, i40, v40, i41, v41, i42, v42, i43, v43, i44, v44, i45, v45, i46, v46, i47, v47, i48, v48, i49, v49, i50, v50, i51, v51, i52, v52, i53, v53, i54, v54, i55, v55, i56, v56, i57, v57, i58, v58, i59, v59, i60, v60, i61, v61, i62, v62, i63, v63, ...) [link] 

This macro is declared in mutek/lut.h source file, line 632.

This macro is for internal use only.

#define DLUT_8_4_DEF_(i0, v0, i1, v1, i2, v2, i3, v3, i4, v4, i5, v5, i6, v6, i7, v7, ...) [link] 

This macro is declared in mutek/lut.h source file, line 148.

This macro is for internal use only.

#define DLUT_8_8_DEF_(i0, v0, i1, v1, i2, v2, i3, v3, i4, v4, i5, v5, i6, v6, i7, v7, ...) [link] 

This macro is declared in mutek/lut.h source file, line 427.

This macro is for internal use only.

#define XLUT_16_2_DEF_(v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, ...) [link] 

This macro is declared in mutek/lut.h source file, line 214.

This macro is for internal use only.

#define XLUT_16_4_DEF_(v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, ...) [link] 

This macro is declared in mutek/lut.h source file, line 493.

This macro is for internal use only.

#define XLUT_2_16_DEF_(v0, v1, ...) [link] 

This macro is declared in mutek/lut.h source file, line 79.

This macro is for internal use only.

#define XLUT_2_32_DEF_(v0, v1, ...) [link] 

This macro is declared in mutek/lut.h source file, line 358.

This macro is for internal use only.

#define XLUT_32_1_DEF_(v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, ...) [link] 

This macro is declared in mutek/lut.h source file, line 293.

This macro is for internal use only.

#define XLUT_32_2_DEF_(v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, ...) [link] 

This macro is declared in mutek/lut.h source file, line 572.

This macro is for internal use only.

#define XLUT_4_16_DEF_(v0, v1, v2, v3, ...) [link] 

This macro is declared in mutek/lut.h source file, line 395.

This macro is for internal use only.

#define XLUT_4_8_DEF_(v0, v1, v2, v3, ...) [link] 

This macro is declared in mutek/lut.h source file, line 116.

This macro is for internal use only.

#define XLUT_64_1_DEF_(v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, ...) [link] 

This macro is declared in mutek/lut.h source file, line 699.

This macro is for internal use only.

#define XLUT_8_4_DEF_(v0, v1, v2, v3, v4, v5, v6, v7, ...) [link] 

This macro is declared in mutek/lut.h source file, line 159.

This macro is for internal use only.

#define XLUT_8_8_DEF_(v0, v1, v2, v3, v4, v5, v6, v7, ...) [link] 

This macro is declared in mutek/lut.h source file, line 438.

This macro is for internal use only.

#define _LUT_RANGE(x, b) [link] 

This macro is declared in mutek/lut.h source file, line 68.

This macro is for internal use only.

typedef char _LUT_out_of_range [link] 

This typedef is declared in mutek/lut.h source file, line 66.

This typedef is for internal use only.

Valid XHTML 1.0 StrictGenerated by diaxen on Thu Aug 4 15:44:06 2022 using MkDoc