Compare commits
2 Commits
f93c635234
...
b768ac1a14
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b768ac1a14 | ||
|
|
78f6a2d9ba |
5
Makefile
5
Makefile
@@ -120,10 +120,15 @@ SRCS = ft_memset.c \
|
|||||||
pf_utils.c \
|
pf_utils.c \
|
||||||
\
|
\
|
||||||
ft_abs.c \
|
ft_abs.c \
|
||||||
|
ft_fabs.c \
|
||||||
ft_greater.c \
|
ft_greater.c \
|
||||||
ft_smaller.c \
|
ft_smaller.c \
|
||||||
ft_sign.c \
|
ft_sign.c \
|
||||||
|
ft_sign_f.c \
|
||||||
|
ft_modf.c \
|
||||||
|
ft_pow.c \
|
||||||
ft_sqrt.c \
|
ft_sqrt.c \
|
||||||
|
ft_round.c \
|
||||||
ft_free_tab.c \
|
ft_free_tab.c \
|
||||||
\
|
\
|
||||||
ft_arrint.c
|
ft_arrint.c
|
||||||
|
|||||||
@@ -122,9 +122,14 @@ void ft_putnbrendl(int n);
|
|||||||
void ft_putnbrendl_fd(int n, int fd);
|
void ft_putnbrendl_fd(int n, int fd);
|
||||||
char *ft_concat_free(char *str1, char *str2);
|
char *ft_concat_free(char *str1, char *str2);
|
||||||
int ft_abs(int n);
|
int ft_abs(int n);
|
||||||
|
double ft_fabs(double n);
|
||||||
int ft_greater(int a, int b);
|
int ft_greater(int a, int b);
|
||||||
int ft_smaller(int a, int b);
|
int ft_smaller(int a, int b);
|
||||||
int ft_sign(int i);
|
int ft_sign(int i);
|
||||||
|
int ft_sign_f(double i);
|
||||||
|
double ft_modf(double x, double *int_part);
|
||||||
|
double ft_pow(double base, int exponent);
|
||||||
|
double ft_round(double x);
|
||||||
int ft_sqrt(int i);
|
int ft_sqrt(int i);
|
||||||
void ft_free_tab(char **tab);
|
void ft_free_tab(char **tab);
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#include "libft.h"
|
#include "libft.h"
|
||||||
|
|
||||||
int ft_abs(int n)
|
int ft_abs(int n)
|
||||||
{
|
{
|
||||||
if (n < 0)
|
if (n < 0)
|
||||||
n *= -1;
|
n *= -1;
|
||||||
|
|||||||
8
srcs/ft_fabs.c
Normal file
8
srcs/ft_fabs.c
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
#include "libft.h"
|
||||||
|
|
||||||
|
double ft_fabs(double n)
|
||||||
|
{
|
||||||
|
if (n < 0)
|
||||||
|
n *= -1;
|
||||||
|
return (n);
|
||||||
|
}
|
||||||
23
srcs/ft_modf.c
Normal file
23
srcs/ft_modf.c
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
#include "libft.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Splits a double into its integer and fractional parts,
|
||||||
|
* it returns the fractional part,
|
||||||
|
* and stores the integer part in the in_part param (if not null)
|
||||||
|
* e.g.:
|
||||||
|
* -3.7 → -3.0 and -0.7 (returns -0.7)
|
||||||
|
*/
|
||||||
|
double ft_modf(double x, double *int_part)
|
||||||
|
{
|
||||||
|
// extract the integer part by casting to long long
|
||||||
|
long long integer = (long long)x;
|
||||||
|
if (int_part != NULL)
|
||||||
|
{
|
||||||
|
*int_part = (double)integer;
|
||||||
|
}
|
||||||
|
|
||||||
|
// compute the fractional part
|
||||||
|
double frac_part = x - *int_part;
|
||||||
|
|
||||||
|
return frac_part;
|
||||||
|
}
|
||||||
19
srcs/ft_pow.c
Normal file
19
srcs/ft_pow.c
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
#include "libft.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* returns the value of 'base' raised to the power of 'exponent'
|
||||||
|
*/
|
||||||
|
double ft_pow(double base, int exponent)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
double result;
|
||||||
|
|
||||||
|
result = 1.0;
|
||||||
|
i = 0;
|
||||||
|
while (i < exponent)
|
||||||
|
{
|
||||||
|
result *= base;
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
28
srcs/ft_round.c
Normal file
28
srcs/ft_round.c
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
#include "libft.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* round x to the nearest integer,
|
||||||
|
* but round halfway cases away from zero, regardless of the current rounding direction
|
||||||
|
*/
|
||||||
|
double ft_round(double x)
|
||||||
|
{
|
||||||
|
// Handle special cases
|
||||||
|
if (x != x)
|
||||||
|
{ // Check for NaN (NaN is not equal to itself)
|
||||||
|
return x; // Return NaN
|
||||||
|
}
|
||||||
|
if (x == (double)LLONG_MAX + 1.0 || x == (double)LLONG_MIN - 1.0)
|
||||||
|
{
|
||||||
|
return x; // Return ±Infinity or the original value if overflow would occur
|
||||||
|
}
|
||||||
|
|
||||||
|
// Handle positive and negative numbers
|
||||||
|
if (x >= 0)
|
||||||
|
{
|
||||||
|
return (double)(long long)(x + 0.5);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return (double)(long long)(x - 0.5);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
#include "libft.h"
|
#include "libft.h"
|
||||||
|
|
||||||
int ft_sign(int i)
|
int ft_sign(int i)
|
||||||
{
|
{
|
||||||
if (i < 0)
|
if (i < 0)
|
||||||
return (-1);
|
return (-1);
|
||||||
|
|||||||
8
srcs/ft_sign_f.c
Normal file
8
srcs/ft_sign_f.c
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
#include "libft.h"
|
||||||
|
|
||||||
|
int ft_sign_f(double i)
|
||||||
|
{
|
||||||
|
if (i < 0)
|
||||||
|
return (-1);
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user