From 22e2f130500d26b02dde6b62a8b99b29281a1c5b Mon Sep 17 00:00:00 2001
From: theo <theo.rossmann@etu.hesge.ch>
Date: Sun, 27 Feb 2022 19:14:05 +0100
Subject: [PATCH] vector project

---
 Makefile  |  14 +++++
 Vecteur.c | 182 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 Vecteur.h |  35 +++++++++++
 Vecteur.o | Bin 0 -> 4648 bytes
 main.c    |  19 ++++++
 main.o    | Bin 0 -> 1848 bytes
 run       | Bin 0 -> 27424 bytes
 7 files changed, 250 insertions(+)
 create mode 100644 Makefile
 create mode 100644 Vecteur.c
 create mode 100644 Vecteur.h
 create mode 100644 Vecteur.o
 create mode 100644 main.c
 create mode 100644 main.o
 create mode 100755 run

diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..51fe6b9
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,14 @@
+CC=gcc -Wall -Wextra -g -fsanitize=address -fsanitize=leak
+
+Vecteur: Vecteur.o main.o
+		$(CC) Vecteur.o main.o -o run -lm
+
+Vecteur.o: Vecteur.c Vecteur.h
+		gcc -Wall -Wextra -c Vecteur.c
+
+main.o: main.c
+		gcc -Wall -Wextra -c main.c
+
+clean:
+		rm -f *.o
+           
\ No newline at end of file
diff --git a/Vecteur.c b/Vecteur.c
new file mode 100644
index 0000000..34c806d
--- /dev/null
+++ b/Vecteur.c
@@ -0,0 +1,182 @@
+#include <stdlib.h>
+#include <string.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <time.h>
+#include "Vecteur.h"
+#define VECTOR_INIT_CAPACITY 4
+
+vector creat_vector()
+{
+    vector vec;
+    vec.capacity = VECTOR_INIT_CAPACITY;
+    vec.length = 0;
+    vec.content = malloc(VECTOR_INIT_CAPACITY * sizeof(type));
+
+    if(vec.content == NULL)
+    {
+        EXIT_FAILURE;
+    }
+    return vec;
+}
+
+int vector_length(vector v)
+{
+    return v.length;
+
+}
+
+void vector_push(vector *v, type element)
+{
+
+    if (v->length == v->capacity)
+    {
+        v->content = realloc( v->content, 2*VECTOR_INIT_CAPACITY * sizeof(type) );
+        v->capacity *= 2;
+       
+    }
+    v->content[v->capacity-1] = element;
+    v->length++;
+}
+
+vector vector_pop(vector *v)
+{
+    if (v->length < (0.25*v->capacity))
+    {
+        v->content = realloc( v->content, 0.5*v->capacity * sizeof(type) );
+        v->capacity *= 0.5;
+       
+    }
+
+    if(v->length != 0)
+    {
+        v->content[v->length - 1] = 0;
+        v->length--;
+
+    }
+
+    return *v;
+}
+
+void vector_set(vector *v, int index, type element)
+{
+    if(0< index && index < v->length)
+    {
+        v->content[index] = element;
+    }
+    else
+    {
+        EXIT_FAILURE;
+        
+    }
+
+}
+
+type vector_get(vector *v, int index)
+{
+
+    if(index < v->length)
+    {
+        return v->content[index];
+        
+    }
+    else
+    {
+        EXIT_FAILURE;
+    }
+    
+}
+
+type vector_remove(vector *v, int index)
+{
+    type valsuppr;
+    valsuppr = v->content[index];
+    for (int i = index; i< v->length-1; i++)
+    {
+        v->content[i] = v->content[i+1];
+    }
+
+    v->length--;
+
+    return valsuppr;
+}
+
+void vector_insert(vector *v, type element, int index)
+{
+    if(index<v->length)
+    {
+        for(int i = v->length; i > index; i--)
+        {
+            v->content[i] = v->content[i+1];
+        }
+        v->content[index] = element;
+        v->length++;
+    }
+}
+void vector_empty(vector *v)
+{
+    v->capacity = VECTOR_INIT_CAPACITY;
+    v->length = 0;
+    free(v->content);
+    v->content = malloc(VECTOR_INIT_CAPACITY * sizeof(type));
+}
+void vector_free(vector *v) 
+{ 
+    free(v->content); 
+}
+
+
+void vector_print(vector *v, void (*print)(type))
+{
+    for (int i = 0 ; i < v->length; i++){
+        print(v->content[i]);
+    }
+    printf("\n");
+
+
+}
+vector vector_map(vector *v, type (*f)(type))
+{
+    vector vec = creat_vector();
+    for(int i = 0; i< v->length; i++)
+    {
+        vector_push(&vec, f(v->content[i]));
+    }
+    return vec;
+}
+
+bool lower_than_five(type a) 
+{
+    return (a < 5);
+}
+
+vector vector_filter(vector *v, bool (*f)(type))
+{
+    vector vec = creat_vector();
+    for(int i = 0; i< v->length; i++)
+    {
+        if(f(v->content[i]))
+        {
+            vector_push(&vec, v->content[i]);
+        }
+        
+    }
+    return vec;
+
+
+}
+
+type add(type lhs, type rhs) {
+return lhs + rhs;
+}
+
+type vector_reduce(vector *v, type neutral, type (*f)(type, type))
+{
+    type red = neutral;
+    for (int i = 0 ; i < v->length; i++){
+        red = f(v->content[i], red);
+    }
+    return red;
+
+
+}
\ No newline at end of file
diff --git a/Vecteur.h b/Vecteur.h
new file mode 100644
index 0000000..0aa96db
--- /dev/null
+++ b/Vecteur.h
@@ -0,0 +1,35 @@
+#ifndef _VECTEUR_H_
+#define _VECTEUR_H_
+#include <stdbool.h>
+
+#define VECTOR_INIT_CAPACITY 4
+typedef int type;
+typedef void (*print)(type);
+typedef type (*f)(type);
+
+
+typedef struct _vector {
+    type *content; // actual content of the vector
+    int capacity; // capacity allocated
+    int length; // actual length
+} vector;
+
+vector creat_vector();
+int vector_length(vector v);
+void vector_push(vector *v, type element);
+vector vector_pop(vector *v);
+void vector_set(vector *v, int index, type element);
+type vector_get(vector *v, int index);
+type vector_remove(vector *v, int index);
+void vector_insert(vector *v, type element, int index);
+void vector_empty(vector *v);
+void vector_free(vector *v) ;
+void vector_print(vector *v, void (*print)(type));
+vector vector_map(vector *v, type (*f)(type));
+bool lower_than_five(type a);
+vector vector_filter(vector *v, bool (*f)(type));
+type add(type lhs, type rhs);
+type vector_reduce(vector *v, type neutral, type (*f)(type, type));
+
+
+#endif
\ No newline at end of file
diff --git a/Vecteur.o b/Vecteur.o
new file mode 100644
index 0000000000000000000000000000000000000000..1f6a77321df84d34889f7f76398873f9c477e1d7
GIT binary patch
literal 4648
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

literal 0
HcmV?d00001

diff --git a/main.c b/main.c
new file mode 100644
index 0000000..6525576
--- /dev/null
+++ b/main.c
@@ -0,0 +1,19 @@
+#include <stdlib.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <time.h>
+#include "Vecteur.h"
+#define VECTOR_INIT_CAPACITY 4
+
+
+int main()
+{
+
+    vector vec = creat_vector();
+    vector_push(&vec, 1);
+    vector_push(&vec, 2);
+    
+
+    
+
+}
\ No newline at end of file
diff --git a/main.o b/main.o
new file mode 100644
index 0000000000000000000000000000000000000000..0771a90afceae875b4be7307dbf0d15d0deeb1f5
GIT binary patch
literal 1848
zcmb<-^>JfjWMqH=Mg}_u1P><4z_5cE!FB*M9T@l+co{zP%l!)V=zQwY{6=60Nc;te
z@R;Gz>H5Q?+x3S>=W&E^r|Xw)*DsyNJbG<Gst^)j*2%-FDGUtm&dyc}8lg$0c_pO^
zmU_l|2D*mkrC_dMosof_fr%zW7-Rwi0}BHKg8%~q11kdqgS%fS0}}(o0gxEXxgro{
z42)Gl42%^5jM6;p91|EB7-SeA7$ofrB3$_d+L)Yq*_d2-*f~G~*fA(<SQtM3$0o~+
zHRKo=m>FQMLDj_!c0H;Xh{p`}4Tyz`nHkto1)w};2J8-IX5fUXK&6-&*iZ!+7{De7
zA-NwMCJYP=ywLDP*Px6;+yIBT9S(7Z+{Da0y<{-O5by5e@8swc@9*Xo>>3gu;^^e#
z8qbhil$ux)UzVC&l3&CCq2hB=^U_N)7z&Cq^Geb{ZW96#43PA|!@$7s=RX8!B8h|i
z0u#4@iZeme4out$Dh^6Rd`RXfK*d4oK^V$qV9+bB%q>YwV$drtDT2@$Fji4&PNH5(
zYDEcyUP@v~B7<I1aWR8lQ9gu|oS&PUnpeW0mzQ6Xs^{((s#{!=n4Aser{|UG6%^$c
zq!yJ_GU$O#O3jE*D@x2wg<DMt1LPl2T1HO^ki5;n0E>T^9U!$ZHi(vnhBZt*NDPEe
zKm#WM#9?4y;AUU|rz%(qm4J$?LB-K?MlVzzokF)?2byNd)o%#3AL?AVbujzU%|*B0
z5~?4R-r<@V7#Jo%IoePfM#1#MXiz$Xv0-XJ^llJ=1*5ACVqgH52I%fT0M!eMUnmny
z!NMQRVPIg$g1R4F{{yH3SpI-=!Q}&t4WdD*5R^yI<6i?BaIkm=#XqPNg4quf2l)rx
zZjiYWAPEKrh72eT%FA5PxCYCE2nGgl$p*CwDgvPzpoY3axNs6`9Gox604kT^TsXr4
NYG?^u1j0bq4*=?Oo>~9^

literal 0
HcmV?d00001

diff --git a/run b/run
new file mode 100755
index 0000000000000000000000000000000000000000..74c9bdf8fca7edd4704ea80c91f3bd89a5eed8c1
GIT binary patch
literal 27424
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
E01f8GlK=n!

literal 0
HcmV?d00001

-- 
GitLab