Skip to content

Don't inline stdio functions; they are not performance-critical #195

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions src/stdio/ArrayIO.xsac
Original file line number Diff line number Diff line change
Expand Up @@ -64,32 +64,32 @@ external void showarray(TermFile &stream, int d, int[.] s, char[*] a);
/******************************************************************************/

#define PRINT(typ, _postfix, _fmt, _zero, _one) \
inline void fprint(TermFile &stream, string fmt, typ[d:shp] arr) \
void fprint(TermFile &stream, string fmt, typ[d:shp] arr) \
{ \
printarray(stream, fmt, d, shp, arr); \
} \
\
inline void fprint(TermFile &stream, typ[d:shp] arr) \
void fprint(TermFile &stream, typ[d:shp] arr) \
{ \
printarray(stream, d, shp, arr); \
} \
\
inline void fprint(File &stream, string fmt, typ[d:shp] arr) \
void fprint(File &stream, string fmt, typ[d:shp] arr) \
{ \
printarray(stream, fmt, d, shp, arr); \
} \
\
inline void fprint(File &stream, typ[d:shp] arr) \
void fprint(File &stream, typ[d:shp] arr) \
{ \
printarray(stream, d, shp, arr); \
} \
\
inline void print(string fmt, typ[d:shp] arr) \
void print(string fmt, typ[d:shp] arr) \
{ \
printarray(stdout, fmt, d, shp, arr); \
} \
\
inline void print(typ[d:shp] arr) \
void print(typ[d:shp] arr) \
{ \
printarray(stdout, d, shp, arr); \
}
Expand All @@ -99,7 +99,7 @@ BUILT_IN(PRINT)
/******************************************************************************/

#define SHOW(typ) \
inline void show(typ[+] arr) \
void show(typ[+] arr) \
{ \
carr = format(arr); \
showarray(stdout, dim(carr), shape(carr), carr); \
Expand Down
36 changes: 18 additions & 18 deletions src/stdio/ComplexIO.sac
Original file line number Diff line number Diff line change
Expand Up @@ -44,15 +44,15 @@ external void printarray( TermFile &stream, string format, int d, int[.] s, com

/*****************************************************************/

inline void fprint(File &stream, complex c)
void fprint(File &stream, complex c)
{
File::fprintf(stream, "(%g,%g)", real(c), imag(c));
}


/*****************************************************************/

inline void fprint(File &stream, complex c, int mode)
void fprint(File &stream, complex c, int mode)
{
if (mode==2)
{
Expand All @@ -74,7 +74,7 @@ inline void fprint(File &stream, complex c, int mode)

/*****************************************************************/

inline void fprint(File &stream, complex c, int mode, int prec)
void fprint(File &stream, complex c, int mode, int prec)
{
if (mode==2)
{
Expand All @@ -98,15 +98,15 @@ inline void fprint(File &stream, complex c, int mode, int prec)
/*****************************************************************/


inline void fprint(TermFile &stream, complex c)
void fprint(TermFile &stream, complex c)
{
TermFile::fprintf(stream, "(%g,%g)", real(c), imag(c));
}


/*****************************************************************/

inline void fprint(TermFile &stream, complex c, int mode)
void fprint(TermFile &stream, complex c, int mode)
{
if (mode==2)
{
Expand All @@ -128,7 +128,7 @@ inline void fprint(TermFile &stream, complex c, int mode)

/*****************************************************************/

inline void fprint(TermFile &stream, complex c, int mode, int prec)
void fprint(TermFile &stream, complex c, int mode, int prec)
{
if (mode==2)
{
Expand All @@ -151,37 +151,37 @@ inline void fprint(TermFile &stream, complex c, int mode, int prec)
/*****************************************************************/
/*****************************************************************/

inline void print(complex c)
void print(complex c)
{
fprint(TermFile::stdout, c);
}


/*****************************************************************/

inline void print(complex c, int mode)
void print(complex c, int mode)
{
fprint(TermFile::stdout, c, mode);
}


/*****************************************************************/

inline void print(complex c, int mode, int prec)
void print(complex c, int mode, int prec)
{
fprint(TermFile::stdout, c, mode, prec);
}

/*****************************************************************/

inline void print(complex[+] arr)
void print(complex[+] arr)
{
printarray(TermFile::stdout, dim( arr), shape( arr), arr);
}

/*****************************************************************/

inline void print(complex[+] arr, int mode)
void print(complex[+] arr, int mode)
{
string format;
if (mode==2)
Expand All @@ -204,7 +204,7 @@ inline void print(complex[+] arr, int mode)

/*****************************************************************/

inline void print(complex[+] arr, int mode, int prec)
void print(complex[+] arr, int mode, int prec)
{
string format;
if (mode==2)
Expand All @@ -228,7 +228,7 @@ inline void print(complex[+] arr, int mode, int prec)
/*****************************************************************/
/*****************************************************************/

inline bool, complex fscancomplex(File &stream)
bool, complex fscancomplex(File &stream)
{
double re;
double im;
Expand All @@ -245,7 +245,7 @@ inline bool, complex fscancomplex(File &stream)
/*****************************************************************/


inline bool, complex fscancomplex(File &stream, int mode)
bool, complex fscancomplex(File &stream, int mode)
{
double re;
double im;
Expand Down Expand Up @@ -278,7 +278,7 @@ inline bool, complex fscancomplex(File &stream, int mode)
/*****************************************************************/


inline bool, complex fscancomplex(TermFile &stream)
bool, complex fscancomplex(TermFile &stream)
{
double re;
double im;
Expand All @@ -295,7 +295,7 @@ inline bool, complex fscancomplex(TermFile &stream)
/*****************************************************************/


inline bool, complex fscancomplex(TermFile &stream, int mode)
bool, complex fscancomplex(TermFile &stream, int mode)
{
double re;
double im;
Expand Down Expand Up @@ -328,7 +328,7 @@ inline bool, complex fscancomplex(TermFile &stream, int mode)
/*****************************************************************/


inline bool, complex scancomplex()
bool, complex scancomplex()
{
double re;
double im;
Expand All @@ -345,7 +345,7 @@ inline bool, complex scancomplex()
/*****************************************************************/


inline bool, complex scancomplex(int mode)
bool, complex scancomplex(int mode)
{
double re;
double im;
Expand Down
56 changes: 28 additions & 28 deletions src/stdio/FibreIO.sac
Original file line number Diff line number Diff line change
Expand Up @@ -184,116 +184,116 @@ stringArray FibreScanStringArray()

/******************************************************************************/

inline void FibrePrint(File &stream, int[d:shp] arr)
void FibrePrint(File &stream, int[d:shp] arr)
{
FibrePrint(stream, d, shp, arr);
}

inline void FibrePrint(File &stream, int arr)
void FibrePrint(File &stream, int arr)
{
File::fprintf(stream, "%d\n", arr);
}

inline void FibrePrint(File &stream, float[d:shp] arr)
void FibrePrint(File &stream, float[d:shp] arr)
{
FibrePrint(stream, d, shp, arr);
}

inline void FibrePrint(File &stream, float arr)
void FibrePrint(File &stream, float arr)
{
File::fprintf(stream, "%.16f\n", tod(arr));
}

inline void FibrePrint(File &stream, double[d:shp] arr)
void FibrePrint(File &stream, double[d:shp] arr)
{
FibrePrint(stream, d, shp, arr);
}

inline void FibrePrint(File &stream, double arr)
void FibrePrint(File &stream, double arr)
{
File::fprintf(stream, "%.16f\n", arr);
}

inline void FibrePrint(File &stream, stringArray arr)
void FibrePrint(File &stream, stringArray arr)
{
FibrePrint(stream, StringArray::dim(arr), StringArray::shape(arr), arr);
}

/******************************************************************************/

inline void FibrePrint(TermFile &stream, int[d:shp] arr)
void FibrePrint(TermFile &stream, int[d:shp] arr)
{
FibrePrint(stream, d, shp, arr);
}

inline void FibrePrint(TermFile &stream, int arr)
void FibrePrint(TermFile &stream, int arr)
{
TermFile::fprintf(stream, "%d\n", arr);
}

inline void FibrePrint(TermFile &stream, float[d:shp] arr)
void FibrePrint(TermFile &stream, float[d:shp] arr)
{
FibrePrint(stream, d, shp, arr);
}

inline void FibrePrint(TermFile &stream, float arr)
void FibrePrint(TermFile &stream, float arr)
{
TermFile::fprintf(stream, "%.16f\n", tod(arr));
}

inline void FibrePrint(TermFile &stream, double[d:shp] arr)
void FibrePrint(TermFile &stream, double[d:shp] arr)
{
FibrePrint(stream, d, shp, arr);
}

inline void FibrePrint(TermFile &stream, double arr)
void FibrePrint(TermFile &stream, double arr)
{
TermFile::fprintf(stream, "%.16f\n", arr);
}

inline void FibrePrint(TermFile &stream, stringArray arr)
void FibrePrint(TermFile &stream, stringArray arr)
{
FibrePrint(stream, StringArray::dim(arr), StringArray::shape(arr), arr);
}

/******************************************************************************/

inline void FibrePrint(int[d:shp] arr)
void FibrePrint(int[d:shp] arr)
{
FibrePrint(stdout, d, shp, arr);
}

inline void FibrePrint(int arr)
void FibrePrint(int arr)
{
TermFile::fprintf(stdout, "%d\n", arr);
}

inline void FibrePrint(float[d:shp] arr)
void FibrePrint(float[d:shp] arr)
{
FibrePrint(stdout, d, shp, arr);
}

inline void FibrePrint(float arr)
void FibrePrint(float arr)
{
TermFile::fprintf(stdout, "%.16f\n", tod(arr));
}

inline void FibrePrint(double[d:shp] arr)
void FibrePrint(double[d:shp] arr)
{
FibrePrint(stdout, d, shp, arr);
}

inline void FibrePrint(double arr)
void FibrePrint(double arr)
{
TermFile::fprintf(stdout, "%.16f\n", arr);
}

inline void FibrePrint(StringArray::stringArray arr)
void FibrePrint(StringArray::stringArray arr)
{
FibrePrint(stdout, StringArray::dim(arr), StringArray::shape(arr), arr);
}

inline void FibrePrint(string scaler)
void FibrePrint(string scaler)
{
TermFile::printf("%s", scaler);
}
Expand Down Expand Up @@ -344,32 +344,32 @@ type[*] FibreScan##alias##Array() \
}

#define FIBREPRINT(type,formatting) \
inline void FibrePrint(File &stream, type[d:shp] arr) \
void FibrePrint(File &stream, type[d:shp] arr) \
{ \
FibrePrint(stream, d, shp, arr); \
} \
\
inline void FibrePrint(File &stream, type arr) \
void FibrePrint(File &stream, type arr) \
{ \
File::fprintf(stream, SETFORMAT(formatting), arr); \
} \
\
inline void FibrePrint(TermFile &stream, type[d:shp] arr) \
void FibrePrint(TermFile &stream, type[d:shp] arr) \
{ \
FibrePrint(stream, d, shp, arr); \
} \
\
inline void FibrePrint(TermFile &stream, type arr) \
void FibrePrint(TermFile &stream, type arr) \
{ \
TermFile::fprintf(stream, SETFORMAT(formatting), arr); \
} \
\
inline void FibrePrint(type[d:shp] arr) \
void FibrePrint(type[d:shp] arr) \
{ \
FibrePrint(stdout, d, shp, arr); \
} \
\
inline void FibrePrint(type arr) \
void FibrePrint(type arr) \
{ \
TermFile::fprintf(stdout, SETFORMAT(formatting), arr); \
}
Expand Down
Loading