#include <math.h>
#include <memory.h>
#include <stdio.h>
#include <stdlib.h>
#include "mavka/biblioteka.h"
#include "mavka/prystriy.h"
р64 бібліотека_мавки_синус_р64(р64 значення) {
return sin(значення);
}
р64 бібліотека_мавки_косинус_р64(р64 значення) {
return cos(значення);
}
р64 бібліотека_мавки_тангенс_р64(р64 значення) {
return tan(значення);
}
р64 бібліотека_мавки_арксинус_р64(р64 значення) {
return asin(значення);
}
р64 бібліотека_мавки_арккосинус_р64(р64 значення) {
return acos(значення);
}
р64 бібліотека_мавки_арктангенс_р64(р64 значення) {
return atan(значення);
}
р64 бібліотека_мавки_арктангенс2_р64(р64 а, р64 б) {
return atan2(а, б);
}
р64 бібліотека_мавки_абсолютне_р64(р64 значення) {
return fabs(значення);
}
р64 бібліотека_мавки_експонента_р64(р64 значення) {
return exp(значення);
}
р64 бібліотека_мавки_корінь_р64(р64 значення) {
return sqrt(значення);
}
р64 бібліотека_мавки_стеля_р64(р64 значення) {
return ceil(значення);
}
р64 бібліотека_мавки_підлога_р64(р64 значення) {
return floor(значення);
}
р64 бібліотека_мавки_округлити_р64(р64 значення) {
return round(значення);
}
р64 бібліотека_мавки_остача_від_ділення_р64(р64 а, р64 б) {
return fmod(а, б);
}
логічне бібліотека_мавки_записати_файл(природне розмір_шляху,
п8* дані_шляху,
природне розмір_даних,
п8* дані_даних) {
char* шлях = (char*)malloc(розмір_шляху + 1);
if (!шлях) {
return false;
}
memcpy(шлях, дані_шляху, розмір_шляху);
шлях[розмір_шляху] = '\0';
FILE* файл = fopen((const char*)шлях, "wb");
if (!файл) {
free(шлях);
return false;
}
size_t записано = fwrite(дані_даних, 1, розмір_даних, файл);
fclose(файл);
free(шлях);
return записано == розмір_даних;
}
логічне бібліотека_мавки_прочитати_файл(природне розмір_шляху,
п8* дані_шляху,
Дані* вихід) {
char* шлях = (char*)malloc(розмір_шляху + 1);
if (!шлях) {
return false;
}
memcpy(шлях, дані_шляху, розмір_шляху);
шлях[розмір_шляху] = '\0';
FILE* файл = fopen((const char*)шлях, "rb");
if (!файл) {
free(шлях);
return false;
}
fseek(файл, 0, SEEK_END);
вихід->розмір = ftell(файл);
fseek(файл, 0, SEEK_SET);
вихід->дані = (п8*)malloc(вихід->розмір);
if (!вихід->дані) {
fclose(файл);
free(шлях);
return false;
}
size_t прочитано = fread(вихід->дані, 1, вихід->розмір, файл);
fclose(файл);
if (прочитано != вихід->розмір) {
free(вихід->дані);
free(шлях);
return false;
}
free(шлях);
return true;
}