Mathc matrices/cq062
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* Save as : c00c.c */
void fun(int r)
double **u = r_mR(i_mR(r,C1),9.);
double **v = r_mR(i_mR(r,C1),9.);
double **ku = i_mR(r,C1);
double k = r_I(9);
 clrscrn();
 printf(" u :");
 p_mR(u,S3,P0,C6);
 printf(" v :");
 p_mR(v,S3,P0,C6);
 printf(" k*u :");
 p_mR(smul_mR(k,u,ku),S3,P0,C6);
 stop();
 clrscrn(); 
 printf(" <ku,v> = k<u,v> [Homogeneity axiom] \n\n");
 printf(" <ku,v> = %.0f \n", dot_uv_R(ku,v));
 printf(" k<u,v> = %.0f \n\n", k*dot_uv_R( u,v));
 f_mR(u);
 f_mR(v);
 f_mR(ku); 
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
do
 fun(rp_I(R3)+R2);
} while(stop_w());
 return 0;
/* ------------------------------------ */

Exemple de sortie écran :
 u :
 -9 
 +1 
 +7 
 v :
 +7 
 -7 
 +1 
 k*u :
+72 
 -8 
-56 
 Press return to continue. 
 <ku,v> = k<u,v> [Homogeneity axiom] 
 <ku,v> = 504 
 k<u,v> = 504 
 Press return to continue
 Press X to stop

Mathc matrices/cq063
Application 
Installer et compiler ces fichiers dans votre répertoire de travail.
/* Save as : c00d.c */
void fun(int r)
double **u = m0_mR(i_mR(r,C1));
 clrscrn();
 printf(" u :");
 p_mR(u,S3,P0,C6);
 printf(" <u,u> >= 0 [Positivity axiom] \n\n");
 printf(" <u,u> = 0 if and only if u = 0 \n\n");
 printf(" <u,u> = u^t.u \n");
 printf(" <u,u> = %.0f \n\n", dot_uv_R(u,u));
 f_mR(u);
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
do
 fun(rp_I(R3)+R2);
} while(stop_w());
 return 0;
/* ------------------------------------ */

Exemple de sortie écran :
 u :
 +0 
 +0 
 +0 
 +0 
 +0 
 <u,u> >= 0 [Positivity axiom] 
 <u,u> = 0 if and only if u = 0 
 <u,u> = u^t.u 
 <u,u> = 0 
 Press return to continue
 Press X to stop

Mathc matrices/cq064
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* Save as : c00e.c */
void fun(int r)
double **u = m0_mR(i_mR(r,C1));
double **v = r_mR(i_mR(r,C1),9.);
 clrscrn();
 printf(" u :");
 p_mR(u,S3,P0,C6);
 printf(" v :");
 p_mR(v,S3,P0,C6);
 printf(" <0,v> = <v,0> \n\n");
 printf(" <u,v> = v^t.u \n");
 printf(" <u,v> = %.0f \n\n", dot_uv_R(u,v));
 printf(" <v,u> = u^t.v \n");
 printf(" <v,u> = %.0f \n\n", dot_uv_R(v,u));
 f_mR(u);
 f_mR(v);
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
do
 fun(rp_I(R3)+R2);
} while(stop_w());
 return 0;
/* ------------------------------------ */

Exemple de sortie écran :
 u :
 +0 
 +0 
 +0 
 +0 
 +0 
 v :
 +5 
 -5 
 -6 
 -9 
 -7 
 <0,v> = <v,0> 
 <u,v> = v^t.u 
 <u,v> = 0 
 <v,u> = u^t.v 
 <v,u> = 0 
 Press return to continue
 Press X to stop

Mathc matrices/cq065
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* Save as : c00f.c */
void fun(int r)
double **u = r_mR(i_mR(r,C1),9.);
double **v = r_mR(i_mR(r,C1),9.);
double **w = r_mR(i_mR(r,C1),9.);
double **vplsw = i_mR(r,C1);
 clrscrn();
 printf(" u :");
 p_mR(u,S3,P0,C6);
 printf(" v :");
 p_mR(v,S3,P0,C6);
 printf(" v+w :");
 p_mR(add_mR(v,w,vplsw),S3,P0,C6);
 stop();
 clrscrn(); 
 printf(" <u,v+w> = <u,v>+<u+w> \n\n");
 printf(" <u,v+w> = %.0f \n", dot_uv_R(u,vplsw));
 printf(" <u,v>+<u,w> = %.0f \n\n", dot_uv_R(u,v)+dot_uv_R(u,w));
 f_mR(u);
 f_mR(v);
 f_mR(w);
 f_mR(vplsw);
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
do
 fun(rp_I(R3)+R2);
} while(stop_w());
 return 0;
/* ------------------------------------ */

Exemple de sortie écran :
 u :
 -3 
 +4 
 -2 
 -7 
 +5 
 v :
 -5 
 +7 
 +8 
 +8 
 +5 
 v+w :
 -1 
+10 
 +1 
+10 
 +2 
 Press return to continue.

<u,v+w> = <u,v>+<u+w> 
 <u,v+w> = -19 
 <u,v>+<u,w> = -19 
 Press return to continue
 Press X to stop

Mathc matrices/cq066
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* Save as : c00g.c */
void fun(int r)
double **u = r_mR(i_mR(r,C1),9.);
double **v = r_mR(i_mR(r,C1),9.);
double **w = r_mR(i_mR(r,C1),9.);
double **vmnsw = i_mR(r,C1);
 clrscrn();
 printf(" u :");
 p_mR(u,S3,P0,C6);
 printf(" v :");
 p_mR(v,S3,P0,C6);
 printf(" v-w :");
 p_mR(sub_mR(v,w,vmnsw),S3,P0,C6);
 stop();
 clrscrn(); 
 printf(" <u,v-w> = <u,v>-<u,w> \n\n");
 printf(" <u,v-w> = %.0f \n", dot_uv_R(u,vmnsw));
 printf(" <u,v>-<u,w> = %.0f \n\n", dot_uv_R(u,v)-dot_uv_R(u,w));
 f_mR(u);
 f_mR(v);
 f_mR(w);
 f_mR(vmnsw);
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
do
 fun(rp_I(R3)+R2);
} while(stop_w());
 return 0;
/* ------------------------------------ */

Exemple de sortie écran :
 u :
 -5 
 +6 
 -9 
 +9 
 -4 
 v :
 -8 
 -4 
 -4 
 -5 
 +4 
 v-w :
 -9 
-10 
-10 
-13 
 -2 
 Press return to continue. 
 <u,v-w> = <u,v>-<u,w> 
 <u,v-w> = -34 
 <u,v>-<u,w> = -34 
 Press return to continue
 Press X to stop

Mathc matrices/cq067
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* Save as : c00h.c */
void fun(int r)
double **u = r_mR(i_mR(r,C1),9.);
double **v = r_mR(i_mR(r,C1),9.);
double **w = r_mR(i_mR(r,C1),9.);
double **umnsv = i_mR(r,C1);
 clrscrn();
 printf(" u :");
 p_mR(u,S3,P0,C6);
 printf(" v :");
 p_mR(v,S3,P0,C6);
 printf(" u-v :");
 p_mR(sub_mR(u,v,umnsv),S3,P0,C6);
 stop();
 clrscrn(); 
 printf(" <u-v,w> = <u,w>-<v,w> \n\n");
 printf(" <u-v,w> = %.0f \n", dot_uv_R(umnsv,w));
 printf(" <u,w>-<v,w> = %.0f \n\n", dot_uv_R(u,w)-dot_uv_R(v,w));
 f_mR(u);
 f_mR(v);
 f_mR(w);
 f_mR(umnsv);
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
do
 fun(rp_I(R3)+R2);
} while(stop_w());
 return 0;
/* ------------------------------------ */

Exemple de sortie écran :
 u :
 -4 
 +7 
 +9 
 -3 
 +8 
 v :
 -4 
 +8 
 -5 
 +1 
 +6 
 u-v :
 +0 
 -1 
+14 
 -4 
 +2 
 Press return to continue. 
 <u-v,w> = <u,w>-<v,w> 
 <u-v,w> = -84 
 <u,w>-<v,w> = -84 
 Press return to continue
 Press X to stop

Mathc matrices/cq068
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* Save as : c00i.c */
void fun(int r)
double **u = r_mR(i_mR(r,C1),9.);
double **v = r_mR(i_mR(r,C1),9.);
double **kv = i_mR(r,C1);
double k = r_I(9);
 clrscrn();
 printf(" u :");
 p_mR(u,S3,P0,C6);
 printf(" v :");
 p_mR(v,S3,P0,C6);
 printf(" k*v :");
 p_mR(smul_mR(k,v,kv),S3,P0,C6);
 stop();
 clrscrn(); 
 printf(" k<u,v> = <u,kv> \n\n");
 printf(" k<u,v> = %.0f \n", k*dot_uv_R(u,v));
 printf(" <u,kv> = %.0f \n\n", dot_uv_R(u,kv));
 f_mR(u);
 f_mR(v);
 f_mR(kv); 
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
do
 fun(rp_I(R3)+R2);
} while(stop_w());
 return 0;
/* ------------------------------------ */

Exemple de sortie écran :
 u :
 +8 
 -7 
 +7 
 +9 
 v :
 +5 
 -2 
 +9 
 -7 
 k*v :
-30 
+12 
-54 
+42 
 Press return to continue. 
 k<u,v> = <u,kv> 
 k<u,v> = -324 
 <u,kv> = -324 
 Press return to continue
 Press X to stop

Programmation PHP/cURL
PHP possède une extension pour requêter des URL.
Installation.
Sur Linux :
 sudo apt-get install php-curl
Exemples.
Voici le POST d'un JSON avec une pièce jointe PDF (du multipart) :
 private function execCurl(
 string $method,
 string $url,
 string $token,
 string $filePath,
 string $fileName
 ): string {
 $curlFile = curl_file_create($filePath,'application/pdf', $fileName);
 $curl = curl_init();
 curl_setopt_array($curl, [
 CURLOPT_URL => $url,
 CURLOPT_RETURNTRANSFER => true,
 CURLOPT_ENCODING => ",
 CURLOPT_MAXREDIRS => 10,
 CURLOPT_TIMEOUT => 0,
 CURLOPT_FOLLOWLOCATION => true,
 CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
 CURLOPT_SSL_VERIFYHOST => 0,
 CURLOPT_SSL_VERIFYPEER => 0,
 CURLOPT_CUSTOMREQUEST => $method,
 CURLOPT_HTTPHEADER => [
 'Authorization: ' . $token
 CURLOPT_POSTFIELDS => [
 'File'=> $curlFile,
 'jsondata' => '{
 "file_name": "' . $fileName . '"
 ],
 $response = curl_exec($curl);
 $error = curl_error($curl);
 $status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
 curl_close($curl);
 if (!empty($error)) {
 throw new ErrorException($status . ' ' . $error);
 return $response;