Beispiel #1
0
/* Multiply two reals together, returning the result */
DLLEXPORT int demo1_R_R( WolframLibraryData libData, mint Argc, MArgument *Args, MArgument Res) {
	mreal R0;
	mreal R1;
	R0 = MArgument_getReal(Args[0]);
	R1 = R0 * R0;
	MArgument_setReal(Res, R1);
	return LIBRARY_NO_ERROR;
}
Beispiel #2
0
EXTERN_C DLLEXPORT int SourceTime(WolframLibraryData libData, mint Argc, MArgument * Args, MArgument Res) {

	// Get the timestamp
	mreal time;
	time = (mreal)VR.m_timestamp * 0.0000001;

	MArgument_setReal(Res, time);

	return LIBRARY_NO_ERROR;
} 
Beispiel #3
0
DLLEXPORT int parabola(WolframLibraryData libData, mint Argc, MArgument *Args, MArgument Res)
{
	mreal x, a, f;
	if (Argc != 2) return LIBRARY_FUNCTION_ERROR;
	x = MArgument_getReal(Args[0]);
	a = MArgument_getReal(Args[1]);
	f = x*x - a;
	MArgument_setReal(Res, f);
	return 0;
}
Beispiel #4
0
/* Gets the I0 th Real number from the rank 1 tensor T0 */
DLLEXPORT int demo_TI_R( WolframLibraryData libData, mint Argc, MArgument *Args, MArgument Res) {
	MTensor T0;
	mint I0;
	mreal R0;
	int err = LIBRARY_NO_ERROR;
	T0 = MArgument_getMTensor(Args[0]);
	I0 = MArgument_getInteger(Args[1]);
	err = libData->MTensor_getReal(T0, &I0, &R0);
	if (err) return err;
	MArgument_setReal(Res, R0);
	return LIBRARY_NO_ERROR;
}
Beispiel #5
0
/* Returns Sum[i*R0, {i, I0}] */
DLLEXPORT int Function01( WolframLibraryData libData, mint Argc, MArgument *Args, MArgument Res) {
	mreal R0;
	mint I0;
	mint i;
	mreal R1;
	I0 = MArgument_getInteger(Args[0]);
	R0 = MArgument_getReal(Args[1]);
	R1 = 0;
	for ( i = 0; i < I0; i++) {
		R1 = R1 + i*R0;
	}
	MArgument_setReal(Res, R1);
	return LIBRARY_NO_ERROR;
}
Beispiel #6
0
/* Gets the I0,I1 th real element of T0 returning that value */
DLLEXPORT int demo_TII_R(WolframLibraryData libData, mint Argc, MArgument *Args, MArgument Res) {
	MTensor T0;
	mint I0, I1;
	mreal res;
	mint dims[2];
	int err = LIBRARY_NO_ERROR;

	T0 = MArgument_getMTensor(Args[0]);
	I0 = MArgument_getInteger(Args[1]);
	I1 = MArgument_getInteger(Args[2]);
	dims[0] = I0;
	dims[1] = I1;
	err = libData->MTensor_getReal(T0, dims, &res);
	MArgument_setReal(Res, res);
	return err;
}