dmlfw (Daniyal Machine Learning Framework)
example_dmlfw_operations_double.c

Usage:

#include <stdio.h>
#include <stdlib.h>
#include <dmlfw_vector.h>
#include <dmlfw_error.h>
int main(void) {
char err[512], dbg[512];
// Create row vector of size 3
dmlfw_row_vec_double_set(row_vec, 0, 1.0);
dmlfw_row_vec_double_set(row_vec, 1, 2.0);
dmlfw_row_vec_double_set(row_vec, 2, 3.0);
// Create column vector of size 3
dmlfw_column_vec_double_set(col_vec, 0, 4.0);
dmlfw_column_vec_double_set(col_vec, 1, 5.0);
dmlfw_column_vec_double_set(col_vec, 2, 6.0);
// Multiply row vector with column vector (dot product)
if (dmlfw_error()) {
dmlfw_get_error_string(err, sizeof(err));
dmlfw_get_debug_string(dbg, sizeof(dbg));
printf("Error multiplying vectors: %s\nDebug info: %s\n", err, dbg);
return EXIT_FAILURE;
}
printf("Dot product result: %lf\n", dmlfw_column_vec_double_get(product, 0));
return EXIT_SUCCESS;
}
int main()
Main function to execute batch gradient descent linear regression example.
Definition batch_gd.c:316
Centralized error handling interface for the framework.
void dmlfw_get_error_string(char *error_string, uint32_t size)
Copies the last error message into the provided character buffer.
uint8_t dmlfw_error(void)
Checks if the last framework call resulted in an error.
void dmlfw_get_debug_string(char *debug_string, uint32_t size)
Copies detailed debug information about the last error into the provided character buffer.
Fundamental vector and matrix arithmetic.
dmlfw_column_vec_double * dmlfw_multiply_double_row_vector_with_column_vector(dmlfw_row_vec_double *left_vector, dmlfw_column_vec_double *right_vector, dmlfw_column_vec_double *product_vector)
Multiplies a row vector with a column vector, producing a single-value column vector.
Core vector types and utilities for double and string data.
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_row_vec_double_destroy(dmlfw_row_vec_double *vector)
Destroys a row vector and frees its memory.
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(dimension_t columns)
Creates a new row vector of specified size.
struct __dmlfw_row_vec_double dmlfw_row_vec_double
Opaque structure representing a row vector of doubles.
Definition dmlfw_vec_double.h:92
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.
struct __dmlfw_column_vec_double dmlfw_column_vec_double
Opaque structure representing a column vector of doubles.
Definition dmlfw_vec_double.h:83
dmlfw_column_vec_double * dmlfw_column_vec_double_create_new(dimension_t rows)
Creates a new column vector of specified size.