; definicija pravokotnika z oglisci (a,b), (a+m,b+n) kot
; seznama tock
RECT(a,b,m,n):=[[[a,b],[a,b+m]],[[a,b+m],[a+n,b+m]],
[[a+n,b+m],[a+n,b]]]
; funkcijo narisemo le na obmocju a,b
PLOT_FUNCTION(u,a,b):=IF(x>=a AND x<=b,u,?)
; definicija levih pravokotnikov
RECTLEFT(u,a,b,n):=VECTOR(RECT(a+j*(b-a)/n,0,
LIM(u,x,a+j*(b-a)/n),(b-a)/n),j,0,n-1)
; vsota ploscin levih pravokotnikov
LEFT_RIEMANN(u,a,b,n):=(b-a)/n*SUM(LIM(u,x,a+(b-a)*k/n),k,0,n-1)
; definicija desnih pravokotnikov
RECTRIGHT(u,a,b,n):=VECTOR(RECT(a+j*(b-a)/n,0,
LIM(u,x,a+(j+1)*(b-a)/n),(b-a)/n),j,0,n-1)
; vsota ploscin desnih pravokotnikov
RIGHT_RIEMANN(u,a,b,n):=(b-a)/n*SUM(LIM(u,x,a+(b-a)*k/n),k,1,n)
; definicija srednjih pravokotnikov
RECTMID(u,a,b,n):=VECTOR(RECT(a+j*(b-a)/n,0,
LIM(u,x,a+(j+0.5)*(b-a)/n),(b-a)/n),j,0,n-1)
; vsota ploscin srednjih pravokotnikov
MID_RIEMANN(u,a,b,n):=(b-a)/n*SUM(LIM(u,x,a+(b-a)*(k+0.5)/n),
k,0,n-1)