/****************************************************************************/ /* (C) Copyright 1993 Universidade Estadual de Campinas (UNICAMP) */ /* Campinas, SP, Brazil */ /* */ /* This file can be freely distributed, modified, and used for any */ /* non-commercial purpose, provided that this copyright and authorship */ /* notice be included in any copy or derived version of this file. */ /* */ /* DISCLAIMER: This software is offered ``as is'', without any guarantee */ /* as to fitness for any particular purpose. Neither the copyright */ /* holder nor the authors or their employers can be held responsible for */ /* any damages that may result from its use. */ /****************************************************************************/ char *aat_gtag = "g4"; char *aat_gname = "u = x - 1; v = x + 1;\na = u^2 + 1/2; b = v2 + 1/2;\ng = 1/a + 1/b"; Float aat_g_flt (Float x) { ROUND_NEAR; { Float u = x - One; Float v = x + One; Float u2 = u*u; Float v2 = v*v; Float a = u2 + Half; Float b = v2 + Half; Float res = 1/a + 1/b; return (res); } } Interval aat_g_ia (Interval x) { Interval u2 = ia_sqr(ia_shift(x, -One)); Interval v2 = ia_sqr(ia_shift(x, +One)); Interval a = ia_shift(u2, Half); Interval b = ia_shift(v2, Half); Interval res = ia_add(ia_inv(a), ia_inv(b)); return (res); } AAP aat_g_aa (AAP x) { MemP frame = aa_top(); AAP u2 = aa_sqr(aa_shift(x, -One)); AAP v2 = aa_sqr(aa_shift(x, +One)); AAP a = aa_shift(u2, Half); AAP b = aa_shift(v2, Half); AAP res = aa_add(aa_inv(a), aa_inv(b)); return (aa_return(frame, res)); } Interval aat_gxd = {-Three, Three}; Interval aat_gyd = {-Three, Three}; int aat_gn = 32;