From 97c023a37db2bba8cb32c267a84437846e59b146 Mon Sep 17 00:00:00 2001 From: Benjamin-Sitbon <Benjaminsitbon@hotmail.com> Date: Tue, 7 May 2019 12:30:48 +0200 Subject: [PATCH] Matrix --- .idea/Projet.iml | 8 ++ .idea/encodings.xml | 4 + .idea/misc.xml | 6 ++ .idea/modules.xml | 8 ++ .idea/vcs.xml | 6 ++ .idea/workspace.xml | 200 ++++++++++++++++++++++++++++++++++++++++++++ joseph.exe | Bin 45411 -> 45411 bytes mat.dat | 3 + mat_new.dat | 5 ++ matrix.c | 133 +++++++++++++++++++++++++---- matrix.h | 4 + matrix.o | Bin 694 -> 3872 bytes matrix_compute.c | 14 +++- matrix_compute.exe | Bin 40910 -> 45051 bytes matrix_compute.o | Bin 668 -> 1046 bytes pointer_sort.exe | Bin 41910 -> 41910 bytes 16 files changed, 376 insertions(+), 15 deletions(-) create mode 100644 .idea/Projet.iml create mode 100644 .idea/encodings.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 .idea/workspace.xml create mode 100644 mat.dat create mode 100644 mat_new.dat diff --git a/.idea/Projet.iml b/.idea/Projet.iml new file mode 100644 index 0000000..bc2cd87 --- /dev/null +++ b/.idea/Projet.iml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<module type="CPP_MODULE" version="4"> + <component name="NewModuleRootManager"> + <content url="file://$MODULE_DIR$" /> + <orderEntry type="inheritedJdk" /> + <orderEntry type="sourceFolder" forTests="false" /> + </component> +</module> \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..15a15b2 --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="Encoding" addBOMForNewFiles="with NO BOM" /> +</project> \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..28a804d --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="JavaScriptSettings"> + <option name="languageLevel" value="ES6" /> + </component> +</project> \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..141a619 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ProjectModuleManager"> + <modules> + <module fileurl="file://$PROJECT_DIR$/.idea/Projet.iml" filepath="$PROJECT_DIR$/.idea/Projet.iml" /> + </modules> + </component> +</project> \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="VcsDirectoryMappings"> + <mapping directory="$PROJECT_DIR$" vcs="Git" /> + </component> +</project> \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 0000000..8c618d9 --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,200 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="CMakeRunConfigurationManager" shouldGenerate="true" shouldDeleteObsolete="true"> + <generated /> + </component> + <component name="CMakeSettings"> + <configurations> + <configuration PROFILE_NAME="Debug" CONFIG_NAME="Debug" /> + </configurations> + </component> + <component name="ChangeListManager"> + <list default="true" id="a4729566-319a-40e2-ad79-c7ce5c27c976" name="Default Changelist" comment=""> + <change beforePath="$PROJECT_DIR$/joseph.exe" beforeDir="false" afterPath="$PROJECT_DIR$/joseph.exe" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/matrix.c" beforeDir="false" afterPath="$PROJECT_DIR$/matrix.c" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/matrix.h" beforeDir="false" afterPath="$PROJECT_DIR$/matrix.h" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/matrix.o" beforeDir="false" afterPath="$PROJECT_DIR$/matrix.o" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/matrix_compute.c" beforeDir="false" afterPath="$PROJECT_DIR$/matrix_compute.c" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/matrix_compute.exe" beforeDir="false" afterPath="$PROJECT_DIR$/matrix_compute.exe" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/matrix_compute.o" beforeDir="false" afterPath="$PROJECT_DIR$/matrix_compute.o" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/pointer_sort.exe" beforeDir="false" afterPath="$PROJECT_DIR$/pointer_sort.exe" afterDir="false" /> + </list> + <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> + <option name="SHOW_DIALOG" value="false" /> + <option name="HIGHLIGHT_CONFLICTS" value="true" /> + <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> + <option name="LAST_RESOLUTION" value="IGNORE" /> + </component> + <component name="FileEditorManager"> + <leaf> + <file pinned="false" current-in-tab="true"> + <entry file="file://$PROJECT_DIR$/matrix_compute.c"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="102"> + <caret line="6" column="8" selection-start-line="6" selection-start-column="8" selection-end-line="6" selection-end-column="8" /> + </state> + </provider> + </entry> + </file> + <file pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/matrix.c"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="263"> + <caret line="117" lean-forward="true" selection-start-line="117" selection-end-line="117" /> + </state> + </provider> + </entry> + </file> + <file pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/matrix.h"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="187"> + <caret line="11" column="45" selection-start-line="11" selection-start-column="45" selection-end-line="11" selection-end-column="45" /> + </state> + </provider> + </entry> + </file> + <file pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/joseph.c"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="170"> + <caret line="31" column="10" lean-forward="true" selection-start-line="31" selection-start-column="10" selection-end-line="31" selection-end-column="32" /> + </state> + </provider> + </entry> + </file> + </leaf> + </component> + <component name="Git.Settings"> + <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" /> + </component> + <component name="IdeDocumentHistory"> + <option name="CHANGED_PATHS"> + <list> + <option value="$PROJECT_DIR$/matrix.h" /> + <option value="$PROJECT_DIR$/matrix.c" /> + <option value="$PROJECT_DIR$/matrix_compute.c" /> + </list> + </option> + </component> + <component name="ProjectFrameBounds" extendedState="6"> + <option name="x" value="360" /> + <option name="y" value="-23" /> + <option name="width" value="1049" /> + <option name="height" value="730" /> + </component> + <component name="ProjectView"> + <navigator proportions="" version="1"> + <foldersAlwaysOnTop value="true" /> + </navigator> + <panes> + <pane id="ProjectPane"> + <subPane> + <expand> + <path> + <item name="Projet" type="b2602c69:ProjectViewProjectNode" /> + <item name="Projet" type="462c0819:PsiDirectoryNode" /> + </path> + </expand> + <select /> + </subPane> + </pane> + <pane id="Scope" /> + </panes> + </component> + <component name="PropertiesComponent"> + <property name="WebServerToolWindowFactoryState" value="false" /> + <property name="last_opened_file_path" value="$PROJECT_DIR$" /> + <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" /> + <property name="nodejs_npm_path_reset_for_default_project" value="true" /> + </component> + <component name="RunDashboard"> + <option name="ruleStates"> + <list> + <RuleState> + <option name="name" value="ConfigurationTypeDashboardGroupingRule" /> + </RuleState> + <RuleState> + <option name="name" value="StatusDashboardGroupingRule" /> + </RuleState> + </list> + </option> + </component> + <component name="SvnConfiguration"> + <configuration /> + </component> + <component name="TaskManager"> + <task active="true" id="Default" summary="Default task"> + <changelist id="a4729566-319a-40e2-ad79-c7ce5c27c976" name="Default Changelist" comment="" /> + <created>1557141417692</created> + <option name="number" value="Default" /> + <option name="presentableId" value="Default" /> + <updated>1557141417692</updated> + <workItem from="1557141419149" duration="10738000" /> + </task> + <servers /> + </component> + <component name="TimeTrackingManager"> + <option name="totallyTimeSpent" value="10738000" /> + </component> + <component name="ToolWindowManager"> + <frame x="-7" y="-7" width="1550" height="838" extended-state="6" /> + <editor active="true" /> + <layout> + <window_info id="Favorites" side_tool="true" /> + <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.24966443" /> + <window_info id="Structure" order="1" side_tool="true" weight="0.25" /> + <window_info anchor="bottom" id="Database Changes" /> + <window_info anchor="bottom" id="Version Control" /> + <window_info active="true" anchor="bottom" id="Terminal" visible="true" weight="0.3286119" /> + <window_info anchor="bottom" id="Event Log" side_tool="true" /> + <window_info anchor="bottom" id="Message" order="0" /> + <window_info anchor="bottom" id="Find" order="1" /> + <window_info anchor="bottom" id="Run" order="2" /> + <window_info anchor="bottom" id="Debug" order="3" weight="0.4" /> + <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" /> + <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" /> + <window_info anchor="bottom" id="TODO" order="6" /> + <window_info anchor="right" id="Database" /> + <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" /> + <window_info anchor="right" id="Ant Build" order="1" weight="0.25" /> + <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" /> + </layout> + </component> + <component name="TypeScriptGeneratedFilesManager"> + <option name="version" value="1" /> + </component> + <component name="editorHistoryManager"> + <entry file="file://$PROJECT_DIR$/pointer_sort.c"> + <provider selected="true" editor-type-id="text-editor" /> + </entry> + <entry file="file://$PROJECT_DIR$/joseph.c"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="170"> + <caret line="31" column="10" lean-forward="true" selection-start-line="31" selection-start-column="10" selection-end-line="31" selection-end-column="32" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/matrix.h"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="187"> + <caret line="11" column="45" selection-start-line="11" selection-start-column="45" selection-end-line="11" selection-end-column="45" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/matrix.c"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="263"> + <caret line="117" lean-forward="true" selection-start-line="117" selection-end-line="117" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/matrix_compute.c"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="102"> + <caret line="6" column="8" selection-start-line="6" selection-start-column="8" selection-end-line="6" selection-end-column="8" /> + </state> + </provider> + </entry> + </component> +</project> \ No newline at end of file diff --git a/joseph.exe b/joseph.exe index 1a921245da6d6d3bb3b20ddad95a114102965370..e5e002dd178c53f0f4c302519a449b5fa43f026e 100644 GIT binary patch delta 22 ecmaF-i0SborU@NPmlP&;`7zHDWZZbWV*>zwk_vYK delta 22 ecmaF-i0SborU@NPC%Gqf`7uxY!?5vo#|8j`Ukf?_ diff --git a/mat.dat b/mat.dat new file mode 100644 index 0000000..0c8e0bd --- /dev/null +++ b/mat.dat @@ -0,0 +1,3 @@ +2 4 +1 2 3 4 +2 3 4 5 \ No newline at end of file diff --git a/mat_new.dat b/mat_new.dat new file mode 100644 index 0000000..5208335 --- /dev/null +++ b/mat_new.dat @@ -0,0 +1,5 @@ +4 2 +1 2 +2 3 +3 4 +4 5 diff --git a/matrix.c b/matrix.c index fa60b0b..9f3ab0b 100644 --- a/matrix.c +++ b/matrix.c @@ -1,30 +1,135 @@ -#include <stdio.h> + #include <stdlib.h> -#include <stdbool.h> +#include <stdio.h> +#include <string.h> +#include <assert.h> #include "matrix.h" + m_double* matrix_alloc(unsigned int row, unsigned int col){ - if(row == 0 || col == 0){ - return NULL; - } - m_double* matrix = calloc(1,sizeof(m_double)); - double ** mat_ptr = malloc(row*col*sizeof(double)); - matrix->content = malloc(row*col*sizeof(double*)) - for (int i=0;i<li;i++) mat->content[i] = data+i*co; + if (row <= 0 || col <= 0) return NULL; + m_double* matrix = (m_double*) calloc(1, sizeof(m_double)); + matrix->row = row; matrix->col = col; + double* mat_ptr = (double*) malloc(row*col*sizeof(double)); + matrix->content = (double*) malloc(row*sizeof(double)); + for (int i=0;i<row;i++) matrix->content[i] = mat_ptr+i*col; return matrix; +} + +void matrix_free(m_double* matrix) { + + free(matrix->content); + free(matrix); + matrix = NULL; } +m_double* matrix_transpose(m_double* matrix) { + assert(NULL != matrix); + m_double* transp = matrix_alloc(matrix->col,matrix->row); + + for (int i = 0; i<matrix->row; i++){ + for (int j = 0; j<matrix->col; j++){ + transp->content[j][i] = matrix->content[i][j]; + } + printf("\n"); + } + + return transp; +} -m_double* matrix_transpose(m_double* matrix){ - m_double transp = matrix_alloc(matrix->col,matrix->row); - for(int i=0;i<matrix->row;i++){ - for(int j=0;j<matrix->col;j++){ - transp[j][i] = matrix[i][j]; +m_double* matrix_add(m_double* add1, m_double* add2) { + + assert(NULL != add1 && NULL != add2); + assert(add1->row == add2->row && add1->col == add2->col); + + m_double* add = matrix_alloc(add1->row, add1->col); + + for (int i=0; i < add1->row; i++) { + for (int j=0; j < add1->col; j++) { + add->content[i][j] = add1->content[i][j] + add2->content[i][j]; } } + return add; +} + + +m_double* matrix_mult(m_double* add1, m_double* add2) { + assert((NULL != add1 && NULL != add2) && add1->col == add2->row); + + m_double* add = matrix_alloc(add1->row,add2->col); + + for (int i = 0; i < add->row; i++) { + for (int j = 0; j < add->col; j++) { + + double result = 0.0; + + for (int k = 0; k < add1->col; k++) { + result += add1->content[i][k] * add2->content[k][j]; + } + add->content[i][j] = result; + } + } + + return add; +} + + +m_double* file2matrix(const char* filename) { + + FILE *fp = fopen(filename,"r+"); + if (NULL == fp) { + fprintf(stderr,"%s, file not found\n",filename); + exit(1); + } + + unsigned int row = 0, col = 0; + fscanf(fp,"%d",&row); + fscanf(fp,"%d",&col); + m_double* mat = matrix_alloc(row, col); + for (int i=0;i<mat->row;i++) { + for (int j = 0; j < mat->col; j++) { + fscanf(fp, "%lf ", &(mat->content[i][j])); + } + } + fclose(fp); + return mat; +} + + + +void matrix2file(m_double* m,char* filename) { + FILE *fp = stdout; + if (NULL != filename) fp = fopen(filename, "w+"); + + fprintf(fp, "%d %d\n", m->row, m->col); + + for (int i = 0; i < m->row; i++){ + for (int j = 0; j < m->col; j++){ + fprintf(fp, "%g ", m->content[i][j]); + } + fprintf(fp, "\n"); + } +} + + +void matrix_display(m_double* matrix) { + + if (matrix == NULL){ + exit(1); + } + printf("[%d,%d]\n", matrix->row, matrix->col); + for (int i = 0; i < matrix->row; i++){ + printf("|"); + for (int j = 0; j < matrix->col; j++){ + printf("%g|", matrix->content[i][j]); + if(j=matrix->col-1) printf("%g", matrix->content[i][j]); + } + printf("|"); + printf("\n"); + } } \ No newline at end of file diff --git a/matrix.h b/matrix.h index 4905544..0c58945 100644 --- a/matrix.h +++ b/matrix.h @@ -6,3 +6,7 @@ typedef struct m_double { m_double* matrix_alloc(unsigned int row, unsigned int col); m_double* matrix_transpose(m_double* m); + +m_double* file2matrix(const char* filename); + +void matrix2file(m_double* m,char* filename); \ No newline at end of file diff --git a/matrix.o b/matrix.o index 4180cf6ac3e7f81eeca9ac7669e9928d8e04b74a..a992237fd6cce6412596cf3bc9be23b135a15ebe 100644 GIT binary patch literal 3872 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 L$H!;pCoup3<ur&* delta 263 zcmZ1=w~dw8hmn;51acS|82BghiVG?*FfiO<U|@(~1PL=RFitcL7t=R^aA2eg0|Ub! zhKZ+?<SZB%7!(*87?NPh85kHG7z`XjJD)bc(U`2jD8}+-!pXyvD>yuqK}It;@^Q2> zIq|Z_9OYqQVPFtrU|`^5U|<ko0LijUe#z}Cu2+&;Q3ACJWGpiyNRDyxX`axD0W6&A zP$`zlfxObDMo=Ee8_bL#=YX_81sNC^;*%3|a`Ka*0tyUF3^oi5lmGFFPoBWXJNZAK FC;)YfCM^H} diff --git a/matrix_compute.c b/matrix_compute.c index dbbd85e..29bb3cc 100644 --- a/matrix_compute.c +++ b/matrix_compute.c @@ -1 +1,13 @@ -int main(){} \ No newline at end of file +#include <stdio.h> +#include <stdlib.h> +#include <stdbool.h> +#include "matrix.h" + +int main(int argc, char *argv[]){ + + m_double* m = file2matrix("mat.dat"); + matrix_display(m); + m_double* ma = matrix_transpose(m); + matrix_display(ma); + matrix2file(ma,"mat_new.dat"); +} \ No newline at end of file diff --git a/matrix_compute.exe b/matrix_compute.exe index 2c3ce2bb599db4eeeaaf55a5829244da5d48c2d6..466c48cc43569509b9a25cd6407405a30d242680 100644 GIT binary patch delta 12816 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 A8UO$Q delta 9185 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 W#nv30{A7*NWRbORHuJ4}%Lo92COJz0 diff --git a/matrix_compute.o b/matrix_compute.o index 8bdd7c1e0f37ce1dc7641608c1d1ebaaf04530c3..b1a7c647abc23595c1b6e4e233d709b31f117233 100644 GIT binary patch delta 545 zcmbQkI*o(Zhmnl|1dNy%7(^%XiVLPNFfgz%GBDg=1PL=Ra7;7}x6><1Ni0c(2!Kct z1_p)<r~(ilgdG?R9P~{<ECg0zU|^_WoVZA>egPu`g9Z~s2BZ<BI<)g?^OFzFZxmjD z#E-LpR5O6toh~Xe-7YFJoh&L~J~F%0MMa|9MMVN8cicsVg@b{C0a<JZ$iS0_Crp@- zn^>Zkl32pakegT%pO;z=;xJ77;1Lh@jUyjNE0Ys1D^u)I9u^h`E(Qh$0R{#J5e7j9 z1~89}L5zU`%oAZyV_;wq0?QgPFfa&%Sx#^<FSw2{kj&&j#!Oa_9UPPQGlmKy2OtXr z0|PUo$V5j`PDzkE85kH?Co3{3GqO!~WzzHn3F(0dFjioI1e!IN2O?l1-XIPb!$e}i zJP-jA$(o$cq-ztOmYI`kl$%&mlv%+L5252zGK&jx5-Z{SlA^@C;)49*RG5enNEZVD D(EM2} delta 191 zcmbQnF^84chmn;51QHk-82BghiVKP`FfiO<U|{fJ1PL=RFitcL7t=R^aA2eg0|Ubc zhKZ-tG(;E~7{Xvm85kHG7z`XjJD)Z``S1dycn63$d3eHv$u*1~l0qP!BOgaAlM^qi z-%%bG76t}(1_lPc$;wQbtRPv&$rG7ECkC)g=40kyXJKGqU}jXF=qSnwvJj-1b+R?H LCZpcuwamHzo(~=a diff --git a/pointer_sort.exe b/pointer_sort.exe index 8d039c0d7d3fc7583840abc83733a9b2ef334fe1..8cc18ba5fc95872cf6b72e239126baf054cb4e36 100644 GIT binary patch delta 22 ecmdmXoN3!}rU@O)mlQ5c?Dl1vU9s`jokakAybEIh delta 22 ecmdmXoN3!}rU@O)LEh&lcKb3(E#7$R&LRMI1`4+T -- GitLab