Les cellules spumeuses ont un cytoplasme spumeux. Il s'agit le plus souvent de macrophages ayant phagocyté des particules lipidiques, mas on rencontre parfois des cellules d'origine différente et de même aspect. 
Les cellules géantes de Touton sont des cellules multinucléees d'origine macrophagique contenant des lipides. Une couronne de noyaux entoure un cytoplasme central homogène rose, alors que le cytoplasme spumeux est en périphérie a l'extérieur des noyaux. Les cellules géantes de Touton sont surtout observées dans le xanthogranulome juvénile mais peuvent parfois être vues dans d'autres lésions xanthomatiséees.

Pathologie cutanée/Anomalies morphologiques/Anomalies dermiques/Tumeur à cellules claires

Ces cellules claires peuvent ressembler un peu aux cellules spumeuses, mais avec un cytoplasme plus homogène, uniformément clair et non mousseux. Cette clarté est habituellement liée à la disparition, lors de la fixation d'une composante glycogénique (ou lipidique) du au cytoplasme.

Auto-éditer un wikilivre/Annexer (Version internationalisée)/src/lang/po/header.inc es.po

Mathc matrices/c12an5
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* ------------------------------------ */
/* Save as : cgn6a.c */
/* ------------------------------------ */
void fun(int r,int c)
double **B = r_mR(i_mR(c,r),9.);
double **B_T = transpose_mR(B,i_mR(r,c));
double **S = i_mR(r,C1);
double **U = i_mR(c,r);
double **V = i_mR(r,r);
double **U_T = i_mR(r,c);
double **U_TB = i_mR(r,r); /* rc cr U_T*B */
double **S_2 = i_mR(r,r); /* rc cr rr S = U_T*B*V */
 clrscrn(); 
 printf(" Copy/Past into the octave windows \n\n\n");
 p_Octave_mR(B,"B",P2);
 printf(" [U, S, V] =svd (B,10)\n\n\n");
 stop();
 clrscrn(); 
 svd_U_Rn_uv_mR(B_T,U); 
 svd_V_Rn_uv_mR(B_T,V); 
 svd_value_uv_mR(B,S);
 printf(" U :");
 p_mR(U,S5,P5,C10); 
 printf(" S :");
 p_mR(S,S5,P5,C10);
 printf(" V:");
 p_mR(V,S5,P5,C10); 
 stop();
 clrscrn(); 
/* S = U_T * B * V : */ 
 transpose_mR( U,U_T);
 mul_mR(U_T,B,U_TB);
 mul_mR(U_TB,V,S_2);
 printf(" S :");
 p_mR(S,S5,P5,C10);
 printf(" S = U_T * B * V :");
 p_mR(S_2,S10,P5,C10); 
 f_mR(B);
 f_mR(B_T); 
 f_mR(S); 
 f_mR(U);
 f_mR(V); 
 f_mR(U_T);
 f_mR(U_TB);
 f_mR(S_2); 
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
int i;
do
 i = rp_I(R3)+R1;
 fun(i,i+R6);
} while(stop_w());
 return 0;
/* ------------------------------------ */

Exemple de sortie écran :
 Copy/Past into the octave windows 
 B=[
+4.00,+2.00;
+2.00,+2.00;
-3.00,-1.00;
+6.00,+4.00;
+4.00,-9.00;
-9.00,-1.00;
+2.00,+4.00;
+2.00,-9.00]
 [U, S, V] =svd (B,10)
 Press return to continue. 
 U :
-0.15613 -0.29739 
-0.14794 -0.14420 
+0.08216 +0.22528 
-0.30407 -0.44159 
+0.61248 -0.34677 
+0.10674 +0.68483 
-0.28769 -0.13522 
+0.62067 -0.19359 
 S :
+14.28696 
+13.03391 
 V:
+0.05852 +0.99829 
+0.99829 -0.05852 
 Press return to continue. 
 ------------------------------------
 S :
+14.28696 
+13.03391 
 S = U_T * B * V :
 -14.28696 -0.00000 
 +0.00000 -13.03391 
 Press return to continue
 Press X to stop

Mathc matrices/c12an6
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* ------------------------------------ */
/* Save as : cgn6e.c */
/* ------------------------------------ */
void fun(int r,int c)
double **B = r_mR(i_mR(c,r),9.);
double **B_T = transpose_mR(B,i_mR(r,c));
double **U_TB = i_mR(r,r); /* rc cr */
double **U = i_mR(c,r);
double **V = i_mR(r,r);
double **V_T = i_mR(r,r);
double **S = i_mR(r,r);
double **U_T = i_mR(r,c);
double **US = i_mR(c,r); /* cr rr U*S */
double **B_2 = i_mR(c,r); /* cr rr rr B = U*S*V_T */
 clrscrn(); 
 svd_U_Rn_uv_mR(B_T,U); 
 svd_V_Rn_uv_mR(B_T,V); 
 /* S = U_T * B * V */
 transpose_mR(U,U_T);
 mul_mR(U_T,B,U_TB);
 mul_mR(U_TB,V,S);
 /* B = U * S * V_T */ 
 transpose_mR(V,V_T);
 mul_mR(U,S,US);
 mul_mR(US,V_T,B_2);
 printf(" B :");
 p_mR(B ,S10,P3,C10); 
 printf(" B = U * S * V_T ");
 p_mR(B_2,S10,P3,C10); 
 f_mR(B);
 f_mR(B_T); 
 f_mR(U); 
 f_mR(V);
 f_mR(S);
 f_mR(US);
 f_mR(V_T);
 f_mR(U_T);
 f_mR(U_TB);
 f_mR(B_2);
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
int i;
do
 i = rp_I(R3)+R1;
 fun(i,i+R6);
} while(stop_w());
 return 0;
/* ------------------------------------ */

Exemple de sortie écran :
 B :
 +8.000 -1.000 +8.000 
 +8.000 -3.000 -1.000 
 -1.000 -7.000 +2.000 
 -3.000 +4.000 +6.000 
 +4.000 -1.000 +2.000 
 -1.000 +4.000 -1.000 
 -5.000 +6.000 -1.000 
 +4.000 -1.000 +6.000 
 -1.000 -3.000 +8.000 
 B = U * S * V_T 
 +8.000 -1.000 +8.000 
 +8.000 -3.000 -1.000 
 -1.000 -7.000 +2.000 
 -3.000 +4.000 +6.000 
 +4.000 -1.000 +2.000 
 -1.000 +4.000 -1.000 
 -5.000 +6.000 -1.000 
 +4.000 -1.000 +6.000 
 -1.000 -3.000 +8.000 
 Press return to continue
 Press X to stop

Mathc matrices/c12an7
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* ------------------------------------ */
/* Save as : cgn6f.c */
/* ------------------------------------ */
void fun(int r,int c)
double **B = r_mR(i_mR(c,r),9.);
double **B_T = transpose_mR(B,i_mR(r,c));
double **U_TB = i_mR(r,r); /* rc cr*/
double **U = i_mR(c,r);
double **V = i_mR(r,r);
double **S = i_mR(r,r);
double **S_T = i_mR(r,r);
double **invS_T = i_mR(r,r);
double **U_T = i_mR(r,c);
double **VS_T = i_mR(r,r); /* rr rr */
double **Pinv = i_mR(r,c); /* rr rr rc V*invS_T*U_T */
double **PinvB = i_mR(r,r); /* rr rr rc cr */
 clrscrn();
 printf(" Copy/Past into the octave windows \n\n\n");
 p_Octave_mR(B,"B",P2);
 printf("pinv(B)\n\n\n");
 stop();
 clrscrn(); 
 svd_U_Rn_uv_mR(B_T,U); 
 svd_V_Rn_uv_mR(B_T,V); 
 /* S = U_T * B * V */ 
 transpose_mR( U,U_T);
 mul_mR(U_T,B,U_TB);
 mul_mR(U_TB,V,S);
 transpose_mR(S,S_T);
 svd_inv_D_uv_mR(S_T,invS_T);
 /* PseudoInverse = V * invS_T * U_T */ 
 mul_mR(V,invS_T,VS_T);
 mul_mR(VS_T,U_T,Pinv);
 printf(" PseudoInverse = V * invS_T * U_T "); 
 p_mR(Pinv,S10,P6,C6); 
 printf(" Ide = PseudoInverse * B "); 
 mul_mR(Pinv,B,PinvB); 
 p_mR(PinvB,S10,P6,C10); 
 f_mR(B);
 f_mR(B_T);
 f_mR(U_TB); 
 f_mR(U);
 f_mR(V); 
 f_mR(S); 
 f_mR(S_T);
 f_mR(invS_T);
 f_mR(U_T); 
 f_mR(VS_T); 
 f_mR(Pinv);
 f_mR(PinvB); 
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
int i;
do
 i = rp_I(R3)+R1;
 fun(i,i+R6);
} while(stop_w());
 return 0;
/* ------------------------------------ */

Exemple de sortie écran :
 Copy/Past into the octave windows 
 B=[
-3.00,+6.00,-9.00;
-3.00,-1.00,-1.00;
-9.00,-3.00,-3.00;
+6.00,-5.00,+6.00;
-3.00,-1.00,+6.00;
+8.00,-7.00,-9.00;
+2.00,-5.00,+2.00;
-1.00,+6.00,+6.00;
+8.00,-9.00,+4.00]
pinv(B)
 Press return to continue. 
 ------------------------------------ 
 PseudoInverse = V * invS_T * U_T 
 +0.006101 -0.019688 -0.059065 +0.014835 -0.021871 +0.023971 
 +0.023571 -0.015973 -0.047918 -0.008233 -0.014862 -0.015619 
 -0.028550 -0.002605 -0.007815 +0.017627 +0.021068 -0.034043 
 -0.006148 +0.012539 +0.013262 
 -0.022179 +0.032607 -0.025217 
 +0.005347 +0.021555 +0.009605 
 Ide = PseudoInverse * B 
 +1.000000 +0.000000 -0.000000 
 -0.000000 +1.000000 -0.000000 
 +0.000000 -0.000000 +1.000000 
 Press return to continue
 Press X to stop

Mathc matrices/h12e
Bibliothèque
Installer ce fichier dans votre répertoire de travail.
/* Save as : vdsvdeig.h */
/* ------------------------------------ 
 eigs_value_AA_T_uv_mR(A, eignValue); if(c > r)
 eigs_value_AA_T_uv_mR(A_T,eignValue); if(r > c)
/* ------------------------------------ */
double **eigs_value_AA_T_uv_mR(
double **A,
double **eignValue)
int rA = rsize_R(A);
int cA = csize_R(A);
double **A_T = i_mR(cA,rA);
double **AA_T = i_mR(rA,rA);
 transpose_mR(A,A_T);
 mul_mR(A, A_T, AA_T); 
 eigs_value_uv_mR(AA_T,eignValue);
 f_mR(A_T);
 f_mR(AA_T);
 return(eignValue); 
/* ------------------------------------ */
 Déclaration des fichiers h.