-- test_4d.adb just the test function and derivatives -- fourth order and through fourth derivative -- u(x,y,z,t) and ux(x,y,z,t) etc. many of them -- every possible term with a unique constant coefficient package body test_4d is function u(x : real; y : real; z : real; t : real) return real is begin return x*x*x*x + 2.0*x*x*x*y + 3.0*x*x*x*z + 4.0*x*x*x*t + 5.0*x*x*y*y + 6.0*x*x*y*z + 7.0*x*x*y*t + 8.0*x*x*z*z + 9.0*x*x*z*t + 10.0*x*x*t*t + 11.0*x*y*y*y + 12.0*x*y*y*z + 13.0*x*y*y*t + 14.0*x*y*z*z + 15.0*x*y*z*t + 16.0*x*y*t*t + 17.0*x*z*z*z + 18.0*x*z*z*t + 19.0*x*z*t*t + 20.0*x*t*t*t + 21.0*y*y*y*y + 22.0*y*y*y*z + 23.0*y*y*y*t + 24.0*y*y*z*z + 25.0*y*y*z*t + 26.0*y*y*t*t + 27.0*y*z*z*z + 28.0*y*z*z*t + 29.0*y*z*t*t + 30.0*y*t*t*t + 31.0*z*z*z*z + 32.0*z*z*z*t + 33.0*z*z*t*t + 34.0*z*t*t*t + 35.0*t*t*t*t + 36.0*x*x*x + 37.0*x*x*y + 38.0*x*x*z + 39.0*x*x*t + 40.0*x*y*y + 41.0*x*y*z + 42.0*x*y*t + 43.0*x*z*z + 44.0*x*z*t + 45.0*x*t*t + 46.0*y*y*y + 47.0*y*y*z + 48.0*y*y*t + 49.0*y*z*z + 50.0*y*z*t + 51.0*y*t*t + 52.0*z*z*z + 53.0*z*z*t + 54.0*z*t*t + 55.0*t*t*t + 56.0*x*x + 57.0*x*y + 58.0*x*z + 59.0*x*t + 60.0*y*y + 61.0*y*z + 62.0*y*t + 63.0*z*z + 64.0*z*t + 65.0*t*t + 66.0*x + 67.0*y + 68.0*z + 69.0*t + 70.0; end u; -- now, for testing, the 69 possible non zero derivatives function Uxxxx(x : real; y : real; z : real; t : real) return real is begin return 24.0; end Uxxxx; function Uxxxy(x : real; y : real; z : real; t : real) return real is begin return 12.0; end Uxxxy; function Uxxxz(x : real; y : real; z : real; t : real) return real is begin return 18.0; end Uxxxz; function Uxxxt(x : real; y : real; z : real; t : real) return real is begin return 24.0; end Uxxxt; function Uxxyy(x : real; y : real; z : real; t : real) return real is begin return 20.0; end Uxxyy; function Uxxyz(x : real; y : real; z : real; t : real) return real is begin return 12.0; end Uxxyz; function Uxxyt(x : real; y : real; z : real; t : real) return real is begin return 14.0; end Uxxyt; function Uxxzz(x : real; y : real; z : real; t : real) return real is begin return 32.0; end Uxxzz; function Uxxzt(x : real; y : real; z : real; t : real) return real is begin return 18.0; end Uxxzt; function Uxxtt(x : real; y : real; z : real; t : real) return real is begin return 40.0; end Uxxtt; function Uxyyy(x : real; y : real; z : real; t : real) return real is begin return 66.0; end Uxyyy; function Uxyyz(x : real; y : real; z : real; t : real) return real is begin return 24.0; end Uxyyz; function Uxyyt(x : real; y : real; z : real; t : real) return real is begin return 26.0; end Uxyyt; function Uxyzz(x : real; y : real; z : real; t : real) return real is begin return 28.0; end Uxyzz; function Uxyzt(x : real; y : real; z : real; t : real) return real is begin return 15.0; end Uxyzt; function Uxytt(x : real; y : real; z : real; t : real) return real is begin return 32.0; end Uxytt; function Uxzzz(x : real; y : real; z : real; t : real) return real is begin return 102.0; end Uxzzz; function Uxzzt(x : real; y : real; z : real; t : real) return real is begin return 36.0; end Uxzzt; function Uxztt(x : real; y : real; z : real; t : real) return real is begin return 38.0; end Uxztt; function Uxttt(x : real; y : real; z : real; t : real) return real is begin return 120.0; end Uxttt; function Uyyyy(x : real; y : real; z : real; t : real) return real is begin return 504.0; end Uyyyy; function Uyyyz(x : real; y : real; z : real; t : real) return real is begin return 132.0; end Uyyyz; function Uyyyt(x : real; y : real; z : real; t : real) return real is begin return 138.0; end Uyyyt; function Uyyzz(x : real; y : real; z : real; t : real) return real is begin return 96.0; end Uyyzz; function Uyyzt(x : real; y : real; z : real; t : real) return real is begin return 50.0; end Uyyzt; function Uyytt(x : real; y : real; z : real; t : real) return real is begin return 104.0; end Uyytt; function Uyzzz(x : real; y : real; z : real; t : real) return real is begin return 162.0; end Uyzzz; function Uyzzt(x : real; y : real; z : real; t : real) return real is begin return 56.0; end Uyzzt; function Uyztt(x : real; y : real; z : real; t : real) return real is begin return 58.0; end Uyztt; function Uyttt(x : real; y : real; z : real; t : real) return real is begin return 180.0; end Uyttt; function Uzzzz(x : real; y : real; z : real; t : real) return real is begin return 744.0; end Uzzzz; function Uzzzt(x : real; y : real; z : real; t : real) return real is begin return 192.0; end Uzzzt; function Uzztt(x : real; y : real; z : real; t : real) return real is begin return 132.0; end Uzztt; function Uzttt(x : real; y : real; z : real; t : real) return real is begin return 204.0; end Uzttt; function Utttt(x : real; y : real; z : real; t : real) return real is begin return 840.0; end Utttt; function Uxxx(x : real; y : real; z : real; t : real) return real is begin return 12.0*y+18.0*z+216.0+24.0*x+24.0*t; end Uxxx; function Uxxy(x : real; y : real; z : real; t : real) return real is begin return 12.0*x+14.0*t+74.0+20.0*y+12.0*z; end Uxxy; function Uxxz(x : real; y : real; z : real; t : real) return real is begin return 18.0*t+18.0*x+76.0+32.0*z+12.0*y; end Uxxz; function Uxxt(x : real; y : real; z : real; t : real) return real is begin return 18.0*z+78.0+14.0*y+24.0*x+40.0*t; end Uxxt; function Uxyy(x : real; y : real; z : real; t : real) return real is begin return 26.0*t+80.0+20.0*x+24.0*z+66.0*y; end Uxyy; function Uxyz(x : real; y : real; z : real; t : real) return real is begin return 41.0+28.0*z+15.0*t+24.0*y+12.0*x; end Uxyz; function Uxyt(x : real; y : real; z : real; t : real) return real is begin return 26.0*y+42.0+14.0*x+32.0*t+15.0*z; end Uxyt; function Uxzz(x : real; y : real; z : real; t : real) return real is begin return 86.0+36.0*t+28.0*y+102.0*z+32.0*x; end Uxzz; function Uxzt(x : real; y : real; z : real; t : real) return real is begin return 38.0*t+18.0*x+36.0*z+44.0+15.0*y; end Uxzt; function Uxtt(x : real; y : real; z : real; t : real) return real is begin return 38.0*z+120.0*t+90.0+32.0*y+40.0*x; end Uxtt; function Uyyy(x : real; y : real; z : real; t : real) return real is begin return 138.0*t + 276.0 + 66.0*x + 132.0*z + 504.0*y; end Uyyy; function Uyyz(x : real; y : real; z : real; t : real) return real is begin return 94.0+96.0*z+50.0*t+132.0*y+24.0*x; end Uyyz; function Uyyt(x : real; y : real; z : real; t : real) return real is begin return 138.0*y+96.0+26.0*x+104.0*t+50.0*z; end Uyyt; function Uyzz(x : real; y : real; z : real; t : real) return real is begin return 98.0+56.0*t+96.0*y+162.0*z+28.0*x; end Uyzz; function Uyzt(x : real; y : real; z : real; t : real) return real is begin return 58.0*t+15.0*x+56.0*z+50.0+50.0*y; end Uyzt; function Uytt(x : real; y : real; z : real; t : real) return real is begin return 58.0*z+180.0*t+102.0+104.0*y+32.0*x; end Uytt; function Uzzz(x : real; y : real; z : real; t : real) return real is begin return 312.0+192.0*t+162.0*y+744.0*z+102.0*x; end Uzzz; function Uzzt(x : real; y : real; z : real; t : real) return real is begin return 132.0*t+36.0*x+192.0*z+106.0+56.0*y; end Uzzt; function Uztt(x : real; y : real; z : real; t : real) return real is begin return 132.0*z+204.0*t+108.0+58.0*y+38.0*x; end Uztt; function Uttt(x : real; y : real; z : real; t : real) return real is begin return 204.0*z+840.0*t+330.0+180.0*y+120.0*x; end Uttt; function Uxx(x : real; y : real; z : real; t : real) return real is begin return 24.0*x*t+14.0*y*t+12.0*y*z+20.0*t*t+78.0*t+12.0*x*y+18.0*x*z+76.0*z+74.0*y+216.0*x+10.0*y*y+16.0*z*z+112.0+18.0*z*t+12.0*x*x; end Uxx; function Uxy(x : real; y : real; z : real; t : real) return real is begin return 80.0*y+12.0*x*z+33.0*y*y+6.0*x*x+74.0*x+15.0*z*t+16.0*t*t+24.0*y*z+26.0*y*t+41.0*z+57.0+42.0*t+20.0*x*y+14.0*z*z+14.0*x*t; end Uxy; function Uxz(x : real; y : real; z : real; t : real) return real is begin return 51.0*z*z+12.0*y*y+12.0*x*y+58.0+15.0*y*t+18.0*x*t+86.0*z+44.0*t+76.0*x+9.0*x*x+19.0*t*t+41.0*y+28.0*y*z+36.0*z*t+32.0*x*z; end Uxz; function Uxt(x : real; y : real; z : real; t : real) return real is begin return 14.0*x*y+18.0*x*z+40.0*x*t+78.0*x+44.0*z+12.0*x*x+90.0*t+59.0+38.0*z*t+15.0*y*z+42.0*y+18.0*z*z+60.0*t*t+13.0*y*y+32.0*y*t; end Uxt; function Uyy(x : real; y : real; z : real; t : real) return real is begin return 26.0*x*t+276.0*y+52.0*t*t+50.0*z*t+24.0*x*z+138.0*y*t+10.0*x*x+80.0*x+48.0*z*z+94.0*z+120.0+96.0*t+252.0*y*y+66.0*x*y+132.0*y*z; end Uyy; function Uyz(x : real; y : real; z : real; t : real) return real is begin return 56.0*z*t+24.0*x*y+15.0*x*t+61.0+98.0*z+50.0*t+41.0*x+6.0*x*x+81.0*z*z+66.0*y*y+29.0*t*t+28.0*x*z+94.0*y+50.0*y*t+96.0*y*z; end Uyz; function Uyt(x : real; y : real; z : real; t : real) return real is begin return 26.0*x*y+32.0*x*t+42.0*x+15.0*x*z+50.0*z+102.0*t+62.0+58.0*z*t+28.0*z*z+104.0*y*t+7.0*x*x+96.0*y+50.0*y*z+69.0*y*y+90.0*t*t; end Uyt; function Uzz(x : real; y : real; z : real; t : real) return real is begin return 126.0+28.0*x*y+102.0*x*z+312.0*z+106.0*t+36.0*x*t+66.0*t*t+86.0*x+192.0*z*t+16.0*x*x+56.0*y*t+98.0*y+162.0*y*z+372.0*z*z+48.0*y*y; end Uzz; function Uzt(x : real; y : real; z : real; t : real) return real is begin return 15.0*x*y+44.0*x+58.0*y*t+106.0*z+9.0*x*x+36.0*x*z+132.0*z*t+108.0*t+64.0+102.0*t*t+96.0*z*z+38.0*x*t+56.0*y*z+50.0*y+25.0*y*y; end Uzt; function Utt(x : real; y : real; z : real; t : real) return real is begin return 32.0*x*y+90.0*x+180.0*y*t+108.0*z+20.0*x*x+38.0*x*z+204.0*z*t+330.0*t+130.0+420.0*t*t+66.0*z*z+120.0*x*t+58.0*y*z+102.0*y+52.0*y*y; end Utt; function Ux(x : real; y : real; z : real; t : real) return real is begin return 40.0*y*y+14.0*x*y*t+58.0*z+12.0*x*y*z+10.0*x*y*y+16.0*x*z*z+ 78.0*x*t+43.0*z*z+16.0*y*t*t+44.0*z*t+12.0*x*x*t+18.0*x*z*t+ 19.0*z*t*t+4.0*x*x*x+76.0*x*z+74.0*x*y+45.0*t*t+59.0*t+6.0*x*x*y+ 11.0*y*y*y+20.0*t*t*t+18.0*z*z*t+9.0*x*x*z+20.0*x*t*t+15.0*y*z*t+ 108.0*x*x+112.0*x+41.0*y*z+14.0*y*z*z+57.0*y+17.0*z*z*z+12.0*y*y*z+ 42.0*y*t+13.0*y*y*t+66.0; end Ux; function Uy(x : real; y : real; z : real; t : real) return real is begin return 138.0*y*y+26.0*x*y*t+61.0*z+24.0*x*y*z+33.0*x*y*y+14.0*x*z*z+ 42.0*x*t+49.0*z*z+52.0*y*t*t+50.0*z*t+7.0*x*x*t+15.0*x*z*t+ 29.0*z*t*t+2.0*x*x*x+41.0*x*z+80.0*x*y+51.0*t*t+62.0*t+10.0*x*x*y+ 84.0*y*y*y+30.0*t*t*t+28.0*z*z*t+6.0*x*x*z+16.0*x*t*t+50.0*y*z*t+ 37.0*x*x+57.0*x+94.0*y*z+48.0*y*z*z+120.0*y+27.0*z*z*z+66.0*y*y*z+ 96.0*y*t+67.0+69.0*y*y*t; end Uy; function Uz(x : real; y : real; z : real; t : real) return real is begin return 47.0*y*y+15.0*x*y*t+126.0*z+28.0*x*y*z+12.0*x*y*y+51.0*x*z*z+ 44.0*x*t+156.0*z*z+29.0*y*t*t+106.0*z*t+9.0*x*x*t+36.0*x*z*t+ 66.0*z*t*t+3.0*x*x*x+86.0*x*z+41.0*x*y+54.0*t*t+64.0*t+6.0*x*x*y+ 22.0*y*y*y+34.0*t*t*t+96.0*z*z*t+16.0*x*x*z+19.0*x*t*t+56.0*y*z*t+ 38.0*x*x+58.0*x+98.0*y*z+81.0*y*z*z+61.0*y+124.0*z*z*z+48.0*y*y*z+ 50.0*y*t+68.0+25.0*y*y*t; end Uz; function Ut(x : real; y : real; z : real; t : real) return real is begin return 48.0*y*y+32.0*x*y*t+64.0*z+15.0*x*y*z+13.0*x*y*y+18.0*x*z*z+ 90.0*x*t+53.0*z*z+90.0*y*t*t+108.0*z*t+20.0*x*x*t+38.0*x*z*t+ 102.0*z*t*t+4.0*x*x*x+44.0*x*z+42.0*x*y+165.0*t*t+130.0*t+ 7.0*x*x*y+23.0*y*y*y+140.0*t*t*t+66.0*z*z*t+9.0*x*x*z+60.0*x*t*t+ 58.0*y*z*t+39.0*x*x+69.0+59.0*x+50.0*y*z+28.0*y*z*z+62.0*y+ 32.0*z*z*z+25.0*y*y*z+102.0*y*t+52.0*y*y*t; end Ut; end Test_4d;