ISA_L_RS_VAND_INV.C(3)

πŸ“¦ version 1.8.0, in nixpkgs unstable

πŸ¦‹ /build/source/src/backends/isa-l/isa_l_rs_vand_inv.c πŸ¦‹

okay bestie, so this is a page from the liberasurecode manual (section 3, the library-functions girlies πŸ’…) and it's literally all about one file β€” /build/source/src/backends/isa-l/isa_l_rs_vand_inv.c β€” the isa-l Reed-Solomon Vandermonde-with-inverse backend. no cap, it's giving "the source file that documents itself". let's get into it ✨


🌸 NAME 🌸

/build/source/src/backends/isa-l/isa_l_rs_vand_inv.c β€” that's it, that's the whole name, she's just a path and she knows it πŸ’–


πŸŽ€ SYNOPSIS πŸŽ€

the includes you need to even look at her:

#include <stdlib.h>
#include 'erasurecode_backend.h'
#include 'isa_l_common.h'

✨ Macros

#define ISA_L_RS_VAND_INV_LIB_MAJOR   1
#define ISA_L_RS_VAND_INV_LIB_MINOR   0
#define ISA_L_RS_VAND_INV_LIB_REV   0
#define ISA_L_RS_VAND_INV_LIB_VER_STR   '1.0'
#define ISA_L_RS_VAND_INV_LIB_NAME   'isa_l_rs_vand'
#define ISA_L_RS_VAND_INV_SO_NAME   'libisal' LIBERASURECODE_SO_SUFFIX '.so.2'

🧚 Functions

static int gen_encoding_matrix (isa_l_descriptor *desc, int m, int k)
static void * isa_l_rs_vand_inv_init (struct ec_backend_args *args, void *backend_sohandle)
static bool isa_l_rs_vand_inv_is_compatible_with (uint32_t version)
__attribute__ ((visibility('internal')))

πŸ’œ Variables

struct ec_backend_common backend_isa_l_rs_vand_inv
static struct ec_backend_op_stubs isa_l_rs_vand_inv_op_stubs

πŸ“ MACRO DEFINITION DOCUMENTATION πŸ“

πŸ’– #define ISA_L_RS_VAND_INV_LIB_MAJOR 1

Definition at line 35 of file isa_l_rs_vand_inv.c.

Referenced by __attribute__().

πŸ’– #define ISA_L_RS_VAND_INV_LIB_MINOR 0

Definition at line 36 of file isa_l_rs_vand_inv.c.

Referenced by __attribute__().

πŸ’– #define ISA_L_RS_VAND_INV_LIB_NAME 'isa_l_rs_vand'

Definition at line 39 of file isa_l_rs_vand_inv.c.

Referenced by __attribute__().

πŸ’– #define ISA_L_RS_VAND_INV_LIB_REV 0

Definition at line 37 of file isa_l_rs_vand_inv.c.

Referenced by __attribute__().

πŸ’– #define ISA_L_RS_VAND_INV_LIB_VER_STR '1.0'

Definition at line 38 of file isa_l_rs_vand_inv.c.

Referenced by __attribute__().

πŸ’– #define ISA_L_RS_VAND_INV_SO_NAME 'libisal' LIBERASURECODE_SO_SUFFIX '.so.2'

Definition at line 43 of file isa_l_rs_vand_inv.c.

Referenced by __attribute__().


πŸ‘‘ FUNCTION DOCUMENTATION πŸ‘‘

🌈 __attribute__ ((visibility('internal')) )

Definition at line 231 of file isa_l_rs_vand_inv.c.

References backend_isa_l_rs_vand_inv, ISA_L_RS_VAND_INV_LIB_MAJOR, ISA_L_RS_VAND_INV_LIB_MINOR, ISA_L_RS_VAND_INV_LIB_NAME, ISA_L_RS_VAND_INV_LIB_REV, ISA_L_RS_VAND_INV_LIB_VER_STR, isa_l_rs_vand_inv_op_stubs, and ISA_L_RS_VAND_INV_SO_NAME.

🌈 int gen_encoding_matrix (isa_l_descriptor * desc, int m, int k) [static]

the notes on this one, verbatim energy:

Should never happen as it's a proper Vandermonde matrix, but belt & bracers...

and then:

Now we're ready to build the encoding matrix: inv(A') * A. Save some multiplies by going straight to I for the start.

Definition at line 49 of file isa_l_rs_vand_inv.c.

Referenced by isa_l_rs_vand_inv_init().

🌈 void * isa_l_rs_vand_inv_init (struct ec_backend_args * args, void * backend_sohandle) [static]

Generate the tables for encoding ✨

Definition at line 109 of file isa_l_rs_vand_inv.c.

References gen_encoding_matrix().

🌈 bool isa_l_rs_vand_inv_is_compatible_with (uint32_t version) [static]

Definition at line 213 of file isa_l_rs_vand_inv.c.

References backend_isa_l_rs_vand_inv.


🫢 VARIABLE DOCUMENTATION 🫢

⭐ struct ec_backend_common backend_isa_l_rs_vand_inv

Definition at line 47 of file isa_l_rs_vand_inv.c.

Referenced by __attribute__(), and isa_l_rs_vand_inv_is_compatible_with().

⭐ struct ec_backend_op_stubs isa_l_rs_vand_inv_op_stubs [static]

Initial value, and yes we're keeping it exactly as it is bestie, no edits:

                                = {
    .INIT                       = isa_l_rs_vand_inv_init,
    .EXIT                       = isa_l_exit,
    .ISSYSTEMATIC               = 1,
    .ENCODE                     = isa_l_encode,
    .DECODE                     = isa_l_decode,
    .FRAGSNEEDED                = isa_l_min_fragments,
    .RECONSTRUCT                = isa_l_reconstruct,
    .ELEMENTSIZE                = isa_l_element_size,
    .ISCOMPATIBLEWITH           = isa_l_rs_vand_inv_is_compatible_with,
    .GETMETADATASIZE            = get_backend_metadata_size_zero,
    .GETENCODEOFFSET            = get_encode_offset_zero,
}

Definition at line 217 of file isa_l_rs_vand_inv.c.

Referenced by __attribute__().


🧚 AUTHOR 🧚

Generated automatically by Doxygen for liberasurecode from the source code. (not a human author, just a robot doing her little documentation slay πŸ€–πŸ’…)


and that's the whole page, bestie πŸ’œ

lowkey iconic that a whole manpage is just one C file's greatest hits β€” macros, statics, and a struct literal, all documented and accounted for. periodt ✨

sign-off time πŸŽ€ β€” this was Version 1.8.0, dated Tue Jan 1 1980 00:0, and the header/footer path on the original is that same /build/source...rs_vand_inv.c(3) with liberasurecode hanging out next to it. mwah πŸ’‹πŸ¦‹

πŸ“¦ where this page comes from