diff options
Diffstat (limited to 'tests/unit_tests/double/test_mean.sci.dia.ref')
-rw-r--r-- | tests/unit_tests/double/test_mean.sci.dia.ref | 1137 |
1 files changed, 1137 insertions, 0 deletions
diff --git a/tests/unit_tests/double/test_mean.sci.dia.ref b/tests/unit_tests/double/test_mean.sci.dia.ref new file mode 100644 index 0000000..82e3935 --- /dev/null +++ b/tests/unit_tests/double/test_mean.sci.dia.ref @@ -0,0 +1,1137 @@ +// +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010-2010 - DIGITEO - Bruno JOFRET +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt +// +// +// <-- ENGLISH IMPOSED --> +// <-- JVM NOT MANDATORY --> +global SCI2CHOME; +scilab2c(SCI2CHOME+"/tests/unit_tests/double/test_mean.sci", TMPDIR); + + ----------------------------------- + + --- Executing your SCILAB code. --- + + ----------------------------------- + + 3.1415927 + + 3.1415927 + 3.1415927i + + 8.3125 + + 8.3125 + 8.3125i + + 3.1415927 + + 3.1415927 + 3.1415927i + + 6.75 7.75 8.75 10. + + 6.75 + 6.75i 7.75 + 7.75i 8.75 + 8.75i 10. + 10.i + + 3.1415927 + + 3.1415927 + 3.1415927i + + 2.5 + 5.75 + 10.5 + 14.5 + + 2.5 + 2.5i + 5.75 + 5.75i + 10.5 + 10.5i + 14.5 + 14.5i + + ------------------------------------------ + + --- End Execution of your SCILAB code. --- + + ------------------------------------------ + + ==> SCI2C hArtes/POLIBA Tool!!! + + Removing directory: TMPDIR/SCI2CTmpResultsReports + + Removing directory: TMPDIR + + ==> Initialize SCI2C and USER2C Libraries. + + ==> Load SCI2C and USER2C Libraries. + + ==> Start translation of function "test_mean" +Warning: file 'TMPDIR/SCI2CTmpResultsReports/test_mean/test_mean_copy.sci' already opened in Scilab. +Warning: file 'TMPDIR/SCI2CTmpResultsReports/test_mean/test_mean_copy.sci' already opened in Scilab. + + ==> Generate the AST. + + ==> Generate C code in TMPDIR/main.c + + /*SCI2C: ########################################################## + ######## + + SCI2C: d0 = %pi + + SCI2C: ########################################################## + ########*/ + + /*SCI2C: ########################################################## + ######## + + SCI2C: d2 = [1 2 3 4 ; 4 5 6 8 ; 9 10 11 12 ; 13 14 15 16] + + SCI2C: ########################################################## + ########*/ + + /*SCI2C: ########################################################## + ######## + + SCI2C: z0 = d0 + %i * d0 + + SCI2C: ########################################################## + ########*/ + + /*SCI2C: ########################################################## + ######## + + SCI2C: z2 = d2 + %i * d2 + + SCI2C: ########################################################## + ########*/ + + /*SCI2C: ########################################################## + ######## + + SCI2C: + + SCI2C: ########################################################## + ########*/ + + /*SCI2C: ########################################################## + ######## + + SCI2C: disp(mean(d0)) + + SCI2C: ########################################################## + ########*/ + + /*SCI2C: ########################################################## + ######## + + SCI2C: disp(mean(z0)) + + SCI2C: ########################################################## + ########*/ + + /*SCI2C: ########################################################## + ######## + + SCI2C: disp(mean(d2)) + + SCI2C: ########################################################## + ########*/ + + /*SCI2C: ########################################################## + ######## + + SCI2C: disp(mean(z2)) + + SCI2C: ########################################################## + ########*/ + + /*SCI2C: ########################################################## + ######## + + SCI2C: + + SCI2C: ########################################################## + ########*/ + + /*SCI2C: ########################################################## + ######## + + SCI2C: disp(mean(d0, 1)) + + SCI2C: ########################################################## + ########*/ + + /*SCI2C: ########################################################## + ######## + + SCI2C: disp(mean(z0, 1)) + + SCI2C: ########################################################## + ########*/ + + /*SCI2C: ########################################################## + ######## + + SCI2C: disp(mean(d2, 1)) + + SCI2C: ########################################################## + ########*/ + + /*SCI2C: ########################################################## + ######## + + SCI2C: disp(mean(z2, 1)) + + SCI2C: ########################################################## + ########*/ + + /*SCI2C: ########################################################## + ######## + + SCI2C: + + SCI2C: ########################################################## + ########*/ + + /*SCI2C: ########################################################## + ######## + + SCI2C: disp(mean(d0, 2)) + + SCI2C: ########################################################## + ########*/ + + /*SCI2C: ########################################################## + ######## + + SCI2C: disp(mean(z0, 2)) + + SCI2C: ########################################################## + ########*/ + + /*SCI2C: ########################################################## + ######## + + SCI2C: disp(mean(d2, 2)) + + SCI2C: ########################################################## + ########*/ + + /*SCI2C: ########################################################## + ######## + + SCI2C: disp(mean(z2, 2)) + + SCI2C: ########################################################## + ########*/ + + /*SCI2C: ########################################################## + ######## + + SCI2C: + + SCI2C: ########################################################## + ########*/ + + /*SCI2C: ########################################################## + ######## + + SCI2C: // disp(mean(d0, 'r')) + + SCI2C: ########################################################## + ########*/ + + /*SCI2C: ########################################################## + ######## + + SCI2C: // disp(mean(z0, 'r')) + + SCI2C: ########################################################## + ########*/ + + /*SCI2C: ########################################################## + ######## + + SCI2C: // disp(mean(d2, 'r')) + + SCI2C: ########################################################## + ########*/ + + /*SCI2C: ########################################################## + ######## + + SCI2C: // disp(mean(z2, 'r')) + + SCI2C: ########################################################## + ########*/ + + /*SCI2C: ########################################################## + ######## + + SCI2C: + + SCI2C: ########################################################## + ########*/ + + /*SCI2C: ########################################################## + ######## + + SCI2C: // disp(mean(d0, 'c')) + + SCI2C: ########################################################## + ########*/ + + /*SCI2C: ########################################################## + ######## + + SCI2C: // disp(mean(z0, 'c')) + + SCI2C: ########################################################## + ########*/ + + /*SCI2C: ########################################################## + ######## + + SCI2C: // disp(mean(d2, 'c')) + + SCI2C: ########################################################## + ########*/ + + /*SCI2C: ########################################################## + ######## + + SCI2C: // disp(mean(z2, 'c')) + + SCI2C: ########################################################## + ########*/ + + /*SCI2C: ########################################################## + ######## + + SCI2C: endfunction + + SCI2C: ########################################################## + ########*/ + + /*SCI2C: ########################################################## + ######## + + SCI2C: + + SCI2C: ########################################################## + ########*/ + + /*SCI2C: ########################################################## + ######## + + SCI2C: + + SCI2C: ########################################################## + ########*/ + + ==> Copying sources + + ==> Copying headers + + ==> Copying interfaces + + ==> Generating Builder TMPDIR/Makefile + + ==> Translation Successfully Completed!!! +fd = mopen(TMPDIR+"/main.c"); +mgetl(fd) + ans = + +!/* ! +! ! +!** ************************************************ ! +! ! +!** This file has been generated using ! +! ! +!** Scilab2C (Version 2.0) ! +! ! +!** ! +! ! +!** Please visit following links for more informations: ! +! ! +!** Atoms Module: http://atoms.scilab.org/toolboxes/scilab2c ! +! ! +!** Scilab2C Forge: http://forge.scilab.org/index.php/p/scilab2c/ ! +! ! +!** Scilab2C ML: http://forge.scilab.org/index.php/p/scilab2c/ ! +! ! +!** ************************************************ ! +! ! +!*/ ! +! ! +! ! +! ! +! ! +! ! +!/* ! +! ! +!** ----------------- ! +! ! +!** --- Includes. --- ! +! ! +!** ----------------- ! +! ! +!*/ ! +! ! +!#include "main.h" ! +! ! +!/* ! +! ! +!** --------------------- ! +! ! +!** --- End Includes. --- ! +! ! +!** --------------------- ! +! ! +!*/ ! +! ! +! ! +! ! +! ! +! ! +! ! +! ! +!/* ! +! ! +!** ------------------------------------- ! +! ! +!** --- Global Variables Declaration. --- ! +! ! +!** ------------------------------------- ! +! ! +!*/ ! +! ! +! ! +! ! +! ! +! ! +!/* ! +! ! +!** ----------------------------------------- ! +! ! +!** --- End Global Variables Declaration. --- ! +! ! +!** ----------------------------------------- ! +! ! +!*/ ! +! ! +! ! +! ! +!/* ! +! ! +! SCI2C: -------------------------------------------------------------! +! ----- ! +! ! +! SCI2C: function test_mean() ! +! ! +! SCI2C: -------------------------------------------------------------! +! ----- ! +! ! +!*/ ! +! ! +!int main() ! +! ! +!{ ! +! ! +!/* ! +! ! +!** ----------------------------- ! +! ! +!** --- Variable Declaration. --- ! +! ! +!** ----------------------------- ! +! ! +!*/ ! +! ! +! ! +! ! +! double d0 = 3.1415927; ! +! ! +! ! +! ! +! double __temp1[1 * 2]; ! +! ! +! int ____temp1Size[2] = {1, 2};; ! +! ! +! ! +! ! +! double __temp2[1 * 3]; ! +! ! +! int ____temp2Size[2] = {1, 3};; ! +! ! +! ! +! ! +! double __temp3[1 * 4]; ! +! ! +! int ____temp3Size[2] = {1, 4};; ! +! ! +! ! +! ! +! double __temp4[1 * 2]; ! +! ! +! int ____temp4Size[2] = {1, 2};; ! +! ! +! ! +! ! +! double __temp5[1 * 3]; ! +! ! +! int ____temp5Size[2] = {1, 3};; ! +! ! +! ! +! ! +! double __temp6[1 * 4]; ! +! ! +! int ____temp6Size[2] = {1, 4};; ! +! ! +! ! +! ! +! double __temp7[2 * 4]; ! +! ! +! int ____temp7Size[2] = {2, 4};; ! +! ! +! ! +! ! +! double __temp8[1 * 2]; ! +! ! +! int ____temp8Size[2] = {1, 2};; ! +! ! +! ! +! ! +! double __temp9[1 * 3]; ! +! ! +! int ____temp9Size[2] = {1, 3};; ! +! ! +! ! +! ! +! double __temp10[1 * 4]; ! +! ! +! int ____temp10Size[2] = {1, 4};; ! +! ! +! ! +! ! +! double __temp11[3 * 4]; ! +! ! +! int ____temp11Size[2] = {3, 4};; ! +! ! +! ! +! ! +! double __temp12[1 * 2]; ! +! ! +! int ____temp12Size[2] = {1, 2};; ! +! ! +! ! +! ! +! double __temp13[1 * 3]; ! +! ! +! int ____temp13Size[2] = {1, 3};; ! +! ! +! ! +! ! +! double __temp14[1 * 4]; ! +! ! +! int ____temp14Size[2] = {1, 4};; ! +! ! +! ! +! ! +! double d2[4 * 4]; ! +! ! +! int __d2Size[2] = {4, 4};; ! +! ! +! ! +! ! +! doubleComplex __temp15; ! +! ! +! ! +! ! +! doubleComplex z0; ! +! ! +! ! +! ! +! doubleComplex __temp16[4 * 4]; ! +! ! +! int ____temp16Size[2] = {4, 4};; ! +! ! +! ! +! ! +! doubleComplex z2[4 * 4]; ! +! ! +! int __z2Size[2] = {4, 4};; ! +! ! +! ! +! ! +! double __temp17; ! +! ! +! ! +! ! +! double ans1; ! +! ! +! ! +! ! +! doubleComplex __temp18; ! +! ! +! ! +! ! +! double ans2; ! +! ! +! ! +! ! +! double __temp19; ! +! ! +! ! +! ! +! double ans3; ! +! ! +! ! +! ! +! doubleComplex __temp20; ! +! ! +! ! +! ! +! double ans4; ! +! ! +! ! +! ! +! double __temp21; ! +! ! +! ! +! ! +! double ans5; ! +! ! +! ! +! ! +! doubleComplex __temp22; ! +! ! +! ! +! ! +! double ans6; ! +! ! +! ! +! ! +! double __temp23[1 * 4]; ! +! ! +! int ____temp23Size[2] = {1, 4};; ! +! ! +! ! +! ! +! double ans7; ! +! ! +! ! +! ! +! doubleComplex __temp24[1 * 4]; ! +! ! +! int ____temp24Size[2] = {1, 4};; ! +! ! +! ! +! ! +! double ans8; ! +! ! +! ! +! ! +! double __temp25; ! +! ! +! ! +! ! +! double ans9; ! +! ! +! ! +! ! +! doubleComplex __temp26; ! +! ! +! ! +! ! +! double ans10; ! +! ! +! ! +! ! +! double __temp27[4 * 1]; ! +! ! +! int ____temp27Size[2] = {4, 1};; ! +! ! +! ! +! ! +! double ans11; ! +! ! +! ! +! ! +! doubleComplex __temp28[4 * 1]; ! +! ! +! int ____temp28Size[2] = {4, 1};; ! +! ! +! ! +! ! +! double ans12; ! +! ! +! ! +! ! +! ! +! ! +! ! +! ! +! ! +! ! +!/* ! +! ! +!** --------------------------------- ! +! ! +!** --- End Variable Declaration. --- ! +! ! +!** --------------------------------- ! +! ! +!*/ ! +! ! +!/* ! +! ! +!** --------------- ! +! ! +!** --- C code. --- ! +! ! +!** --------------- ! +! ! +!*/ ! +! ! +! ! +! ! +! /*SCI2C: ##########################################################! +! ######## ! +! ! +! SCI2C: d0 = %pi ! +! ! +! SCI2C: ##########################################################! +! ########*/ ! +! ! +! d0 = d0OpEquald0(SCI2C_PI); ! +! ! +! ! +! ! +! /*SCI2C: ##########################################################! +! ######## ! +! ! +! SCI2C: d2 = [1 2 3 4 ; 4 5 6 8 ; 9 10 11 12 ; 13 14 15 16] ! +! ! +! SCI2C: ##########################################################! +! ########*/ ! +! ! +! d0d0OpRcd2(1,2,__temp1); ! +! ! +! d2d0OpRcd2(__temp1, ____temp1Size,3,__temp2); ! +! ! +! d2d0OpRcd2(__temp2, ____temp2Size,4,__temp3); ! +! ! +! d0d0OpRcd2(4,5,__temp4); ! +! ! +! d2d0OpRcd2(__temp4, ____temp4Size,6,__temp5); ! +! ! +! d2d0OpRcd2(__temp5, ____temp5Size,8,__temp6); ! +! ! +! d2d2OpCcd2(__temp3, ____temp3Size,__temp6, ____temp6Size,__temp7)! +! ; ! +! ! +! d0d0OpRcd2(9,10,__temp8); ! +! ! +! d2d0OpRcd2(__temp8, ____temp8Size,11,__temp9); ! +! ! +! d2d0OpRcd2(__temp9, ____temp9Size,12,__temp10); ! +! ! +! d2d2OpCcd2(__temp7, ____temp7Size,__temp10, ____temp10Size,__temp! +! 11); ! +! ! +! d0d0OpRcd2(13,14,__temp12); ! +! ! +! d2d0OpRcd2(__temp12, ____temp12Size,15,__temp13); ! +! ! +! d2d0OpRcd2(__temp13, ____temp13Size,16,__temp14); ! +! ! +! d2d2OpCcd2(__temp11, ____temp11Size,__temp14, ____temp14Size,d2);! +! ! +! ! +! ! +! /*SCI2C: ##########################################################! +! ######## ! +! ! +! SCI2C: z0 = d0 + %i * d0 ! +! ! +! SCI2C: ##########################################################! +! ########*/ ! +! ! +! __temp15 = z0d0OpStarz0(DoubleComplex(0,1),d0); ! +! ! +! z0 = d0z0OpPlusz0(d0,__temp15); ! +! ! +! ! +! ! +! /*SCI2C: ##########################################################! +! ######## ! +! ! +! SCI2C: z2 = d2 + %i * d2 ! +! ! +! SCI2C: ##########################################################! +! ########*/ ! +! ! +! z0d2OpStarz2(DoubleComplex(0,1),d2, __d2Size,__temp16); ! +! ! +! d2z2OpPlusz2(d2, __d2Size,__temp16, ____temp16Size,z2); ! +! ! +! ! +! ! +! /*SCI2C: ##########################################################! +! ######## ! +! ! +! SCI2C: ! +! ! +! SCI2C: ##########################################################! +! ########*/ ! +! ! +! ! +! ! +! /*SCI2C: ##########################################################! +! ######## ! +! ! +! SCI2C: disp(mean(d0)) ! +! ! +! SCI2C: ##########################################################! +! ########*/ ! +! ! +! __temp17 = d0meand0(d0); ! +! ! +! ans1 = d0dispd0(__temp17); ! +! ! +! ! +! ! +! /*SCI2C: ##########################################################! +! ######## ! +! ! +! SCI2C: disp(mean(z0)) ! +! ! +! SCI2C: ##########################################################! +! ########*/ ! +! ! +! __temp18 = z0meanz0(z0); ! +! ! +! ans2 = z0dispd0(__temp18); ! +! ! +! ! +! ! +! /*SCI2C: ##########################################################! +! ######## ! +! ! +! SCI2C: disp(mean(d2)) ! +! ! +! SCI2C: ##########################################################! +! ########*/ ! +! ! +! __temp19 = d2meand0(d2, __d2Size); ! +! ! +! ans3 = d0dispd0(__temp19); ! +! ! +! ! +! ! +! /*SCI2C: ##########################################################! +! ######## ! +! ! +! SCI2C: disp(mean(z2)) ! +! ! +! SCI2C: ##########################################################! +! ########*/ ! +! ! +! __temp20 = z2meanz0(z2, __z2Size); ! +! ! +! ans4 = z0dispd0(__temp20); ! +! ! +! ! +! ! +! /*SCI2C: ##########################################################! +! ######## ! +! ! +! SCI2C: ! +! ! +! SCI2C: ##########################################################! +! ########*/ ! +! ! +! ! +! ! +! /*SCI2C: ##########################################################! +! ######## ! +! ! +! SCI2C: disp(mean(d0, 1)) ! +! ! +! SCI2C: ##########################################################! +! ########*/ ! +! ! +! __temp21 = d0d0meand0(d0,1); ! +! ! +! ans5 = d0dispd0(__temp21); ! +! ! +! ! +! ! +! /*SCI2C: ##########################################################! +! ######## ! +! ! +! SCI2C: disp(mean(z0, 1)) ! +! ! +! SCI2C: ##########################################################! +! ########*/ ! +! ! +! __temp22 = z0d0meanz0(z0,1); ! +! ! +! ans6 = z0dispd0(__temp22); ! +! ! +! ! +! ! +! /*SCI2C: ##########################################################! +! ######## ! +! ! +! SCI2C: disp(mean(d2, 1)) ! +! ! +! SCI2C: ##########################################################! +! ########*/ ! +! ! +! d2d0meand2(d2, __d2Size,1,__temp23); ! +! ! +! ans7 = d2dispd0(__temp23, ____temp23Size); ! +! ! +! ! +! ! +! /*SCI2C: ##########################################################! +! ######## ! +! ! +! SCI2C: disp(mean(z2, 1)) ! +! ! +! SCI2C: ##########################################################! +! ########*/ ! +! ! +! z2d0meanz2(z2, __z2Size,1,__temp24); ! +! ! +! ans8 = z2dispd0(__temp24, ____temp24Size); ! +! ! +! ! +! ! +! /*SCI2C: ##########################################################! +! ######## ! +! ! +! SCI2C: ! +! ! +! SCI2C: ##########################################################! +! ########*/ ! +! ! +! ! +! ! +! /*SCI2C: ##########################################################! +! ######## ! +! ! +! SCI2C: disp(mean(d0, 2)) ! +! ! +! SCI2C: ##########################################################! +! ########*/ ! +! ! +! __temp25 = d0d0meand0(d0,2); ! +! ! +! ans9 = d0dispd0(__temp25); ! +! ! +! ! +! ! +! /*SCI2C: ##########################################################! +! ######## ! +! ! +! SCI2C: disp(mean(z0, 2)) ! +! ! +! SCI2C: ##########################################################! +! ########*/ ! +! ! +! __temp26 = z0d0meanz0(z0,2); ! +! ! +! ans10 = z0dispd0(__temp26); ! +! ! +! ! +! ! +! /*SCI2C: ##########################################################! +! ######## ! +! ! +! SCI2C: disp(mean(d2, 2)) ! +! ! +! SCI2C: ##########################################################! +! ########*/ ! +! ! +! d2d0meand2(d2, __d2Size,2,__temp27); ! +! ! +! ans11 = d2dispd0(__temp27, ____temp27Size); ! +! ! +! ! +! ! +! /*SCI2C: ##########################################################! +! ######## ! +! ! +! SCI2C: disp(mean(z2, 2)) ! +! ! +! SCI2C: ##########################################################! +! ########*/ ! +! ! +! z2d0meanz2(z2, __z2Size,2,__temp28); ! +! ! +! ans12 = z2dispd0(__temp28, ____temp28Size); ! +! ! +! ! +! ! +! /*SCI2C: ##########################################################! +! ######## ! +! ! +! SCI2C: ! +! ! +! SCI2C: ##########################################################! +! ########*/ ! +! ! +! ! +! ! +! /*SCI2C: ##########################################################! +! ######## ! +! ! +! SCI2C: // disp(mean(d0, 'r')) ! +! ! +! SCI2C: ##########################################################! +! ########*/ ! +! ! +! ! +! ! +! /*SCI2C: ##########################################################! +! ######## ! +! ! +! SCI2C: // disp(mean(z0, 'r')) ! +! ! +! SCI2C: ##########################################################! +! ########*/ ! +! ! +! ! +! ! +! /*SCI2C: ##########################################################! +! ######## ! +! ! +! SCI2C: // disp(mean(d2, 'r')) ! +! ! +! SCI2C: ##########################################################! +! ########*/ ! +! ! +! ! +! ! +! /*SCI2C: ##########################################################! +! ######## ! +! ! +! SCI2C: // disp(mean(z2, 'r')) ! +! ! +! SCI2C: ##########################################################! +! ########*/ ! +! ! +! ! +! ! +! /*SCI2C: ##########################################################! +! ######## ! +! ! +! SCI2C: ! +! ! +! SCI2C: ##########################################################! +! ########*/ ! +! ! +! ! +! ! +! /*SCI2C: ##########################################################! +! ######## ! +! ! +! SCI2C: // disp(mean(d0, 'c')) ! +! ! +! SCI2C: ##########################################################! +! ########*/ ! +! ! +! ! +! ! +! /*SCI2C: ##########################################################! +! ######## ! +! ! +! SCI2C: // disp(mean(z0, 'c')) ! +! ! +! SCI2C: ##########################################################! +! ########*/ ! +! ! +! ! +! ! +! /*SCI2C: ##########################################################! +! ######## ! +! ! +! SCI2C: // disp(mean(d2, 'c')) ! +! ! +! SCI2C: ##########################################################! +! ########*/ ! +! ! +! ! +! ! +! /*SCI2C: ##########################################################! +! ######## ! +! ! +! SCI2C: // disp(mean(z2, 'c')) ! +! ! +! SCI2C: ##########################################################! +! ########*/ ! +! ! +! ! +! ! +! /*SCI2C: ##########################################################! +! ######## ! +! ! +! SCI2C: endfunction ! +! ! +! SCI2C: ##########################################################! +! ########*/ ! +! ! +! ! +! ! +! /*SCI2C: ##########################################################! +! ######## ! +! ! +! SCI2C: ! +! ! +! SCI2C: ##########################################################! +! ########*/ ! +! ! +! ! +! ! +! /* ! +! ! +! ** --------------------- ! +! ! +! ** --- Free Section. --- ! +! ! +! ** --------------------- ! +! ! +! */ ! +! ! +! /* ! +! ! +! ** ------------------------- ! +! ! +! ** --- End Free Section. --- ! +! ! +! ** ------------------------- ! +! ! +! */ ! +! ! +! ! +! ! +! return(0); ! +! ! +! ! +! ! +! /*SCI2C: ##########################################################! +! ######## ! +! ! +! SCI2C: ! +! ! +! SCI2C: ##########################################################! +! ########*/ ! +! ! +!} ! +! ! +! ! +mclose(fd); |