#ifndef _OPTI_H_ #define _OPTI_H_ #include <time.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> #include <stdbool.h> typedef struct Point Point; struct Point { double x, y; }; Point* line(double a, double b); double popow(double v, double w); double double_random(double min, double max); Point* cloud1(Point* a_line); Point* cloud2(double *a, double *b); double random_point_in_cloud2(Point* my_cloud); Point* cloud3(double *a, double *b); Point* cloud_test(); double* averages(Point* my_cloud, int cloud_size); double* a_and_b(double* my_averages); double* sums(Point* my_cloud, int cloud_size); double gradient(double *a, double *b, Point* my_cloud, int cloud_size, bool is_a); double cost(double *a, double *b, Point* my_cloud); void gradient_descent_v4(double *a, double *b, Point* my_cloud, int my_cloud_size); double cost2(double *a, double *b, double *new_a, double *new_b); Point ** cloud_splitter(Point* my_cloud); Point* cloud_merger(Point* cloud_a, Point* cloud_b, bool g3_here); #endif