ZXC 0.15.0
High-performance asymmetric lossless compression library
Loading...
Searching...
No Matches
zxc_pivco_tables.h File Reference

Shuffle-index tables for the PivCo merge routines (declarations). More...

#include <stdint.h>

Go to the source code of this file.

Variables

const uint8_t zxc_pivco_idxa_u8 [256][8]
 
const uint8_t zxc_pivco_idxb_pre [9][256][8]
 

Detailed Description

Shuffle-index tables for the PivCo merge routines (declarations).

The definitions live in zxc_pivco_tables.c, compiled ONCE outside the per-architecture function-multiversioning variants: the tables are pure data, so duplicating them per variant would only bloat the binary (22 KB x number of variants).

For a control byte b (bits LSB-first; bit==0 -> next element of L, bit==1 -> next of R), over a 32-lane view {L[0..15], R[0..15]} (L lanes 0..15, R lanes 16..31):

  • zxc_pivco_idxa_u8[b][j]: FINAL lane for output j of the first half of a 16-output merge step. Also serves the portable 8-output merge routine (a 24-byte scratch with R copied at offset 16).
  • zxc_pivco_idxb_pre[pc0][b][j]: FINAL lane for output 8+j, pre-offset for pc0 = popcount(first control byte): L entries already skip the (8 - pc0) left elements consumed by the first half, R entries the pc0 right ones. Indexing the row by pc0 folds this fixup into a single table load.

Definition in file zxc_pivco_tables.h.

Macro Definition Documentation

◆ ZXC_HIDDEN

#define ZXC_HIDDEN

Definition at line 43 of file zxc_pivco_tables.h.

Variable Documentation

◆ zxc_pivco_idxa_u8

const uint8_t zxc_pivco_idxa_u8[256][8]
extern

Definition at line 18 of file zxc_pivco_tables.c.

◆ zxc_pivco_idxb_pre

const uint8_t zxc_pivco_idxb_pre[9][256][8]
extern

Definition at line 149 of file zxc_pivco_tables.c.