11.39 Sample ‘data1

MGL code:

new a 40 50 60 'exp(-x^2-4*y^2-16*z^2)'
light on:alpha on
copy b a:diff b 'x':subplot 5 3 0:call 'splot'
copy b a:diff2 b 'x':subplot 5 3 1:call 'splot'
copy b a:cumsum b 'x':subplot 5 3 2:call 'splot'
copy b a:integrate b 'x':subplot 5 3 3:call 'splot'
mirror b 'x':subplot 5 3 4:call 'splot'
copy b a:diff b 'y':subplot 5 3 5:call 'splot'
copy b a:diff2 b 'y':subplot 5 3 6:call 'splot'
copy b a:cumsum b 'y':subplot 5 3 7:call 'splot'
copy b a:integrate b 'y':subplot 5 3 8:call 'splot'
mirror b 'y':subplot 5 3 9:call 'splot'
copy b a:diff b 'z':subplot 5 3 10:call 'splot'
copy b a:diff2 b 'z':subplot 5 3 11:call 'splot'
copy b a:cumsum b 'z':subplot 5 3 12:call 'splot'
copy b a:integrate b 'z':subplot 5 3 13:call 'splot'
mirror b 'z':subplot 5 3 14:call 'splot'
stop
func splot 0
title 'max=',b.max:norm b -1 1 on:rotate 70 60:box:surf3 b
return

C++ code:

void smgl_data1(mglGraph *gr)	// basic data operations
{
	mglData a(40,50,60),b;	gr->Fill(a,"exp(-x^2-4*y^2-16*z^2)");
	gr->Light(true);		gr->Alpha(true);
	b.Set(a);	b.Diff("x");	gr->SubPlot(5,3,0);	splot1(gr,b);
	b.Set(a);	b.Diff2("x");	gr->SubPlot(5,3,1);	splot1(gr,b);
	b.Set(a);	b.CumSum("x");	gr->SubPlot(5,3,2);	splot1(gr,b);
	b.Set(a);	b.Integral("x");gr->SubPlot(5,3,3);	splot1(gr,b);
	b.Mirror("x");	gr->SubPlot(5,3,4);	splot1(gr,b);
	b.Set(a);	b.Diff("y");	gr->SubPlot(5,3,5);	splot1(gr,b);
	b.Set(a);	b.Diff2("y");	gr->SubPlot(5,3,6);	splot1(gr,b);
	b.Set(a);	b.CumSum("y");	gr->SubPlot(5,3,7);	splot1(gr,b);
	b.Set(a);	b.Integral("y");gr->SubPlot(5,3,8);	splot1(gr,b);
	b.Mirror("y");	gr->SubPlot(5,3,9);	splot1(gr,b);
	b.Set(a);	b.Diff("z");	gr->SubPlot(5,3,10);splot1(gr,b);
	b.Set(a);	b.Diff2("z");	gr->SubPlot(5,3,11);splot1(gr,b);
	b.Set(a);	b.CumSum("z");	gr->SubPlot(5,3,12);splot1(gr,b);
	b.Set(a);	b.Integral("z");gr->SubPlot(5,3,13);splot1(gr,b);
	b.Mirror("z");	gr->SubPlot(5,3,14);splot1(gr,b);
}

Sample data1