dmlfw (Daniyal Machine Learning Framework)
|
Core vector data structures and utility functions. More...
Modules | |
String Vectors | |
Opaque vector data structures and utilities for string values. | |
Double Precision Vectors | |
Opaque vector data structures and utilities for double precision floating-point values. | |
typedef struct __dmlfw_column_vec_double | dmlfw_column_vec_double |
Opaque structure representing a column vector of doubles. | |
typedef struct __dmlfw_row_vec_double | dmlfw_row_vec_double |
Opaque structure representing a row vector of doubles. | |
void | dmlfw_column_vec_double_copy (dmlfw_column_vec_double *target_vector, dmlfw_column_vec_double *source_vector) |
Copies the contents of one column vector to another. | |
dmlfw_row_vec_double * | dmlfw_row_vec_double_create_new (dimension_t columns) |
Creates a new row vector of specified size. | |
void | dmlfw_row_vec_double_destroy (dmlfw_row_vec_double *vector) |
Destroys a row vector and frees its memory. | |
double | dmlfw_row_vec_double_get (dmlfw_row_vec_double *vector, index_t index) |
Retrieves the value of an element in a row vector. | |
void | dmlfw_row_vec_double_set (dmlfw_row_vec_double *vector, index_t index, double value) |
Sets the value of an element in a row vector. | |
dmlfw_row_vec_double * | dmlfw_row_vec_double_create_new_filled (dimension_t columns, double value, dmlfw_row_vec_double *vector) |
Creates or fills a row vector with a specified value. | |
dmlfw_column_vec_double * | dmlfw_row_vec_double_transpose (dmlfw_row_vec_double *vector, dmlfw_column_vec_double *transposed_vector) |
Transposes a row vector into a column vector. | |
dimension_t | dmlfw_row_vec_double_get_size (dmlfw_row_vec_double *vector) |
Returns the number of elements in a row vector. | |
double | dmlfw_row_vec_double_get_mean (dmlfw_row_vec_double *vector) |
Computes the mean of all elements in a row vector. | |
void | dmlfw_row_vec_double_to_csv (dmlfw_row_vec_double *vector, const char *csv_file_name, dmlfw_row_vec_string *header) |
Exports a row vector to a CSV file with a header. | |
dmlfw_row_vec_double * | dmlfw_row_vec_double_from_csv (const char *csv_file_name, dmlfw_row_vec_double *vector, dmlfw_row_vec_string **header) |
Loads a row vector from a CSV file. | |
void | dmlfw_row_vec_double_copy (dmlfw_row_vec_double *target_vector, dmlfw_row_vec_double *source_vector) |
Copies the contents of one row vector to another. | |
dmlfw_column_vec_double * | dmlfw_column_vec_double_create_new (dimension_t rows) |
Creates a new column vector of specified size. | |
void | dmlfw_column_vec_double_destroy (dmlfw_column_vec_double *vector) |
Destroys a column vector and frees its memory. | |
double | dmlfw_column_vec_double_get (dmlfw_column_vec_double *vector, index_t index) |
Retrieves the value of an element in a column vector. | |
void | dmlfw_column_vec_double_set (dmlfw_column_vec_double *vector, index_t index, double value) |
Sets the value of an element in a column vector. | |
dmlfw_column_vec_double * | dmlfw_column_vec_double_create_new_filled (dimension_t rows, double value, dmlfw_column_vec_double *vector) |
Creates or fills a column vector with a specified value. | |
dmlfw_row_vec_double * | dmlfw_column_vec_double_transpose (dmlfw_column_vec_double *vector, dmlfw_row_vec_double *transposed_vector) |
Transposes a column vector into a row vector. | |
dimension_t | dmlfw_column_vec_double_get_size (dmlfw_column_vec_double *vector) |
Returns the number of elements in a column vector. | |
double | dmlfw_column_vec_double_get_mean (dmlfw_column_vec_double *vector) |
Computes the mean of all elements in a column vector. | |
void | dmlfw_column_vec_double_to_csv (dmlfw_column_vec_double *vector, const char *csv_file_name, dmlfw_row_vec_string *header) |
Exports a column vector to a CSV file with a header. | |
dmlfw_column_vec_double * | dmlfw_column_vec_double_from_csv (const char *csv_file_name, dmlfw_column_vec_double *vector, dmlfw_row_vec_string **header) |
Loads a column vector from a one-column CSV file. | |
typedef struct __dmlfw_row_vec_string | dmlfw_row_vec_string |
Opaque structure representing a row vector of strings. | |
typedef struct __dmlfw_column_vec_string | dmlfw_column_vec_string |
Opaque structure representing a column vector of strings. | |
dmlfw_row_vec_string * | dmlfw_row_vec_string_create_new (dimension_t columns) |
Creates a new row vector of strings of specified length. | |
void | dmlfw_row_vec_string_destroy (dmlfw_row_vec_string *vector) |
Destroys a row vector of strings and frees its memory. | |
dmlfw_row_vec_string * | dmlfw_row_vec_string_from_csv (const char *csv_file_name, dmlfw_row_vec_string *vector, dmlfw_row_vec_string **header) |
Loads a row vector of strings from a CSV file. | |
void | dmlfw_row_vec_string_to_csv (dmlfw_row_vec_string *vector, const char *csv_file_name, dmlfw_row_vec_string *header) |
Exports a row vector of strings to a CSV file with a header. | |
void | dmlfw_row_vec_string_get (dmlfw_row_vec_string *vector, index_t index, char **string) |
Retrieves a string element from a row vector by index. | |
void | dmlfw_row_vec_string_set (dmlfw_row_vec_string *vector, index_t index, char *string) |
Sets a string element in the row vector. | |
dimension_t | dmlfw_row_vec_string_get_size (dmlfw_row_vec_string *vector) |
Returns the size (number of elements) in a row vector. | |
dmlfw_column_vec_string * | dmlfw_row_vec_string_transpose (dmlfw_row_vec_string *vector, dmlfw_column_vec_string *transposed_vector) |
Transposes a row vector of strings into a column vector. | |
dmlfw_column_vec_string * | dmlfw_column_vec_string_create_new (dimension_t rows) |
Creates a new column vector of strings of specified length. | |
void | dmlfw_column_vec_string_destroy (dmlfw_column_vec_string *vector) |
Destroys a column vector of strings and frees its memory. | |
dmlfw_column_vec_string * | dmlfw_column_vec_string_from_csv (const char *csv_file_name, dmlfw_column_vec_string *vector, dmlfw_row_vec_string **header) |
Loads a column vector of strings from a CSV file. | |
void | dmlfw_column_vec_string_to_csv (dmlfw_column_vec_string *vector, const char *csv_file_name, dmlfw_row_vec_string *header) |
Exports a column vector of strings to a CSV file with a header. | |
void | dmlfw_column_vec_string_get (dmlfw_column_vec_string *vector, index_t index, char **string) |
Retrieves a string element from a column vector by index. | |
void | dmlfw_column_vec_string_set (dmlfw_column_vec_string *vector, index_t index, char *string) |
Sets a string element in the column vector. | |
dimension_t | dmlfw_column_vec_string_get_size (dmlfw_column_vec_string *vector) |
Returns the size (number of elements) in a column vector. | |
dmlfw_row_vec_string * | dmlfw_column_vec_string_transpose (dmlfw_column_vec_string *vector, dmlfw_row_vec_string *transposed_vector) |
Transposes a column vector of strings into a row vector. | |
Core vector data structures and utility functions.
typedef struct __dmlfw_column_vec_double dmlfw_column_vec_double |
Opaque structure representing a column vector of doubles.
The internal details are hidden. Use the provided API functions to create, manipulate, and destroy instances.
typedef struct __dmlfw_column_vec_string dmlfw_column_vec_string |
Opaque structure representing a column vector of strings.
The internal details are hidden. Use the provided API functions to create, manipulate, and destroy instances.
typedef struct __dmlfw_row_vec_double dmlfw_row_vec_double |
Opaque structure representing a row vector of doubles.
The internal details are hidden. Use the provided API functions to create, manipulate, and destroy instances.
typedef struct __dmlfw_row_vec_string dmlfw_row_vec_string |
Opaque structure representing a row vector of strings.
The internal details are hidden. Use the provided API functions to create, manipulate, and destroy instances.
void dmlfw_column_vec_double_copy | ( | dmlfw_column_vec_double * | target_vector, |
dmlfw_column_vec_double * | source_vector | ||
) |
Copies the contents of one column vector to another.
Assumptions:
Error Cases:
target_vector | [in,out] Destination column vector (must not be NULL). |
source_vector | [in] Source column vector (must not be NULL). |
Usage example:
dmlfw_column_vec_double * dmlfw_column_vec_double_create_new | ( | dimension_t | rows | ) |
Creates a new column vector of specified size.
size | [in] Number of elements (must be > 0). |
Usage example:
dmlfw_column_vec_double * dmlfw_column_vec_double_create_new_filled | ( | dimension_t | rows, |
double | value, | ||
dmlfw_column_vec_double * | vector | ||
) |
Creates or fills a column vector with a specified value.
vector
is NULL → allocates new vector of size size
and fills with value
.vector
exists and matches size
→ fills with value
.size | [in] Number of elements (must be > 0). |
value | [in] Value to assign to all elements. |
vector | [in,out] Optional existing vector to reuse, or NULL. |
Usage example:
void dmlfw_column_vec_double_destroy | ( | dmlfw_column_vec_double * | vector | ) |
Destroys a column vector and frees its memory.
vector | [in] Pointer to the column vector, or NULL (no-op). |
Usage example:
dmlfw_column_vec_double * dmlfw_column_vec_double_from_csv | ( | const char * | csv_file_name, |
dmlfw_column_vec_double * | vector, | ||
dmlfw_row_vec_string ** | header | ||
) |
Loads a column vector from a one-column CSV file.
Expects a CSV file where:
csv_file_name | [in] CSV file path (must not be NULL). |
vector | [in,out] Optional existing vector to reuse, or NULL. |
header | [out] New single-element row vector containing header string (must not be NULL). |
header
is always a row vector, even when representing a column vector's header. vector
is provided, its size must match the number of data rows.Error Cases:
Usage example:
double dmlfw_column_vec_double_get | ( | dmlfw_column_vec_double * | vector, |
index_t | index | ||
) |
Retrieves the value of an element in a column vector.
vector | [in] Column vector (must not be NULL). |
index | [in] Zero-based index of the element. |
Usage example:
double dmlfw_column_vec_double_get_mean | ( | dmlfw_column_vec_double * | vector | ) |
Computes the mean of all elements in a column vector.
vector | [in] Column vector (must not be NULL). |
dimension_t dmlfw_column_vec_double_get_size | ( | dmlfw_column_vec_double * | vector | ) |
Returns the number of elements in a column vector.
vector | [in] Column vector (must not be NULL). |
void dmlfw_column_vec_double_set | ( | dmlfw_column_vec_double * | vector, |
index_t | index, | ||
double | value | ||
) |
Sets the value of an element in a column vector.
vector | [in,out] Column vector (must not be NULL). |
index | [in] Zero-based index of the element. |
value | [in] Value to set. |
Usage example:
void dmlfw_column_vec_double_to_csv | ( | dmlfw_column_vec_double * | vector, |
const char * | csv_file_name, | ||
dmlfw_row_vec_string * | header | ||
) |
Exports a column vector to a CSV file with a header.
vector | [in] Column vector (must not be NULL). |
csv_file_name | [in] Output CSV file path (must not be NULL). |
header | [in] Single-element row vector of strings (must not be NULL). |
Assumptions:
Error Cases:
header
is always a row vector, even when representing a column vector's header. Usage example:
dmlfw_row_vec_double * dmlfw_column_vec_double_transpose | ( | dmlfw_column_vec_double * | vector, |
dmlfw_row_vec_double * | transposed_vector | ||
) |
Transposes a column vector into a row vector.
vector | [in] Column vector (must not be NULL). |
transposed_vector | [in,out] Optional existing row vector to reuse, or NULL. |
Usage example:
dmlfw_column_vec_string * dmlfw_column_vec_string_create_new | ( | dimension_t | rows | ) |
Creates a new column vector of strings of specified length.
rows | [in] Number of string elements (must be > 0). |
Usage example:
void dmlfw_column_vec_string_destroy | ( | dmlfw_column_vec_string * | vector | ) |
Destroys a column vector of strings and frees its memory.
vector | [in] Pointer to the column vector, or NULL (no-op). |
Usage example:
dmlfw_column_vec_string * dmlfw_column_vec_string_from_csv | ( | const char * | csv_file_name, |
dmlfw_column_vec_string * | vector, | ||
dmlfw_row_vec_string ** | header | ||
) |
Loads a column vector of strings from a CSV file.
csv_file_name | [in] Path to CSV file (must not be NULL). |
vector | [in,out] Optional existing vector to reuse, or NULL. |
header | [out] Output pointer to a newly allocated row vector header. |
header
is always a row vector, even when representing a column vector's header. Usage example:
void dmlfw_column_vec_string_get | ( | dmlfw_column_vec_string * | vector, |
index_t | index, | ||
char ** | string | ||
) |
Retrieves a string element from a column vector by index.
vector | [in] Column vector (must not be NULL). |
index | [in] Zero-based index. |
string | [out] Pointer to receive the string element. |
Usage example:
dimension_t dmlfw_column_vec_string_get_size | ( | dmlfw_column_vec_string * | vector | ) |
Returns the size (number of elements) in a column vector.
vector | [in] Column vector (must not be NULL). |
void dmlfw_column_vec_string_set | ( | dmlfw_column_vec_string * | vector, |
index_t | index, | ||
char * | string | ||
) |
Sets a string element in the column vector.
vector | [in,out] Column vector (must not be NULL). |
index | [in] Zero-based index. |
string | [in] Input string to copy into the vector (caller retains ownership). |
Usage example:
void dmlfw_column_vec_string_to_csv | ( | dmlfw_column_vec_string * | vector, |
const char * | csv_file_name, | ||
dmlfw_row_vec_string * | header | ||
) |
Exports a column vector of strings to a CSV file with a header.
vector | [in] Column vector (must not be NULL). |
csv_file_name | [in] Output CSV file path (must not be NULL). |
header | [in] Row vector of string header (must not be NULL). |
header
is always a row vector, even when representing a column vector's header. Usage example:
dmlfw_row_vec_string * dmlfw_column_vec_string_transpose | ( | dmlfw_column_vec_string * | vector, |
dmlfw_row_vec_string * | transposed_vector | ||
) |
Transposes a column vector of strings into a row vector.
vector | [in] Column vector (must not be NULL). |
transposed_vector | [in,out] Optional existing row vector to reuse, or NULL. |
Usage example:
void dmlfw_row_vec_double_copy | ( | dmlfw_row_vec_double * | target_vector, |
dmlfw_row_vec_double * | source_vector | ||
) |
Copies the contents of one row vector to another.
Assumptions:
Error Cases:
target_vector | [in,out] Destination row vector (must not be NULL). |
source_vector | [in] Source row vector (must not be NULL). |
Usage example:
dmlfw_row_vec_double * dmlfw_row_vec_double_create_new | ( | dimension_t | columns | ) |
Creates a new row vector of specified size.
size | [in] Number of elements (must be > 0). |
Usage example:
dmlfw_row_vec_double * dmlfw_row_vec_double_create_new_filled | ( | dimension_t | columns, |
double | value, | ||
dmlfw_row_vec_double * | vector | ||
) |
Creates or fills a row vector with a specified value.
vector
is NULL → allocates new vector of size size
and fills with value
.vector
exists and matches size
→ fills with value
.size | [in] Number of elements (must be > 0). |
value | [in] Value to assign to all elements. |
vector | [in,out] Optional existing vector to reuse, or NULL. |
Usage example:
void dmlfw_row_vec_double_destroy | ( | dmlfw_row_vec_double * | vector | ) |
Destroys a row vector and frees its memory.
vector | [in] Pointer to the row vector, or NULL (no-op). |
Usage example:
dmlfw_row_vec_double * dmlfw_row_vec_double_from_csv | ( | const char * | csv_file_name, |
dmlfw_row_vec_double * | vector, | ||
dmlfw_row_vec_string ** | header | ||
) |
Loads a row vector from a CSV file.
Reads a CSV file specified by csv_file_name
and populates a row vector. The first line is parsed into a row vector of strings as header.
Assumptions:
vector
is NULL, a new row vector is allocated; otherwise, must match data size.Error Cases:
csv_file_name | [in] Input CSV file path (must not be NULL). |
vector | [in,out] Optional existing row vector to reuse, or NULL. |
header | [out] Output pointer to a newly allocated row vector containing header strings. |
header
is always a row vector, even when representing a column vector's header. Usage example:
double dmlfw_row_vec_double_get | ( | dmlfw_row_vec_double * | vector, |
index_t | index | ||
) |
Retrieves the value of an element in a row vector.
vector | [in] Row vector (must not be NULL). |
index | [in] Zero-based index of the element. |
Usage example:
double dmlfw_row_vec_double_get_mean | ( | dmlfw_row_vec_double * | vector | ) |
Computes the mean of all elements in a row vector.
vector | [in] Row vector (must not be NULL). |
dimension_t dmlfw_row_vec_double_get_size | ( | dmlfw_row_vec_double * | vector | ) |
Returns the number of elements in a row vector.
vector | [in] Row vector (must not be NULL). |
void dmlfw_row_vec_double_set | ( | dmlfw_row_vec_double * | vector, |
index_t | index, | ||
double | value | ||
) |
Sets the value of an element in a row vector.
vector | [in,out] Row vector (must not be NULL). |
index | [in] Zero-based index of the element. |
value | [in] Value to set. |
Usage example:
void dmlfw_row_vec_double_to_csv | ( | dmlfw_row_vec_double * | vector, |
const char * | csv_file_name, | ||
dmlfw_row_vec_string * | header | ||
) |
Exports a row vector to a CSV file with a header.
Writes the elements of the row vector to a CSV file specified by csv_file_name
, with a header row consisting of strings from the header
row vector.
Assumptions:
Error Cases:
vector | [in] Row vector (must not be NULL). |
csv_file_name | [in] Output CSV file path (must not be NULL). |
header | [in] Row vector of strings header (must not be NULL, size must match vector size). |
header
is always a row vector, even when representing a column vector's header. Usage example:
dmlfw_column_vec_double * dmlfw_row_vec_double_transpose | ( | dmlfw_row_vec_double * | vector, |
dmlfw_column_vec_double * | transposed_vector | ||
) |
Transposes a row vector into a column vector.
vector | [in] Row vector (must not be NULL). |
transposed_vector | [in,out] Optional existing column vector to reuse, or NULL. |
Usage example:
dmlfw_row_vec_string * dmlfw_row_vec_string_create_new | ( | dimension_t | columns | ) |
Creates a new row vector of strings of specified length.
columns | [in] Number of string elements (must be > 0). |
Usage example:
void dmlfw_row_vec_string_destroy | ( | dmlfw_row_vec_string * | vector | ) |
Destroys a row vector of strings and frees its memory.
vector | [in] Pointer to the row vector, or NULL (no-op). |
Usage example:
dmlfw_row_vec_string * dmlfw_row_vec_string_from_csv | ( | const char * | csv_file_name, |
dmlfw_row_vec_string * | vector, | ||
dmlfw_row_vec_string ** | header | ||
) |
Loads a row vector of strings from a CSV file.
csv_file_name | [in] Path to CSV file (must not be NULL). |
vector | [in,out] Optional existing vector to reuse, or NULL. |
header | [out] Output pointer to a newly allocated header vector. |
header
is always a row vector, even when representing a column vector's header. Usage example:
void dmlfw_row_vec_string_get | ( | dmlfw_row_vec_string * | vector, |
index_t | index, | ||
char ** | string | ||
) |
Retrieves a string element from a row vector by index.
vector | [in] Row vector (must not be NULL). |
index | [in] Zero-based index. |
string | [out] Pointer to receive the string element. |
Usage example:
dimension_t dmlfw_row_vec_string_get_size | ( | dmlfw_row_vec_string * | vector | ) |
Returns the size (number of elements) in a row vector.
vector | [in] Row vector (must not be NULL). |
void dmlfw_row_vec_string_set | ( | dmlfw_row_vec_string * | vector, |
index_t | index, | ||
char * | string | ||
) |
Sets a string element in the row vector.
vector | [in,out] Row vector (must not be NULL). |
index | [in] Zero-based index. |
string | [in] Input string to copy into the vector (caller retains ownership). |
Usage example:
void dmlfw_row_vec_string_to_csv | ( | dmlfw_row_vec_string * | vector, |
const char * | csv_file_name, | ||
dmlfw_row_vec_string * | header | ||
) |
Exports a row vector of strings to a CSV file with a header.
vector | [in] Row vector (must not be NULL). |
csv_file_name | [in] Output CSV file path (must not be NULL). |
header | [in] Row vector of strings header (must not be NULL). |
header
is always a row vector, even when representing a column vector's header. Usage example:
dmlfw_column_vec_string * dmlfw_row_vec_string_transpose | ( | dmlfw_row_vec_string * | vector, |
dmlfw_column_vec_string * | transposed_vector | ||
) |
Transposes a row vector of strings into a column vector.
vector | [in] Row vector (must not be NULL). |
transposed_vector | [in,out] Optional existing column vector to reuse, or NULL. |
Usage example: