Abstract

The computer routine used in a previous paper [ J. Opt. Soc. Am. A 13, 523 ( 1996)] for the concatenation of eikonals is quite slow in certain demanding cases. This problem can be overcome by using the order doubling technique developed for this purpose by Forbes [ J. Opt. Soc. Am. 72, 1097 ( 1982); J. Opt. Soc. Am. 73, 782 ( 1983)] and Forbes and Andrews [ J. Opt. Soc. Am. 73, 776 ( 1983)] more than a dozen years ago. Numerical experiments show that this technique speeds up the calculations by two orders of magnitude or more.

© 1996 Optical Society of America

Full Article  |  PDF Article

References

  • View by:
  • |
  • |
  • |

  1. A. Walther, “Eikonal theory and computer algebra,” J. Opt. Soc. Am. A 13, 523–531 (1996).
    [CrossRef]
  2. G. W. Forbes, “Order doubling in the determination of characteristic functions,” J. Opt. Soc. Am. 72, 1097–1099 (1982).
    [CrossRef]
  3. G. W. Forbes, “Order doubling in the computation of aberration coefficients,” J. Opt. Soc. Am. 73, 782–788 (1983).
    [CrossRef]
  4. G. W. Forbes, M. Andrews, “Concatenation of symmetric systems in Hamiltonian optics,” J. Opt. Soc. Am. 73, 776–781 (1983).
    [CrossRef]

1996

1983

1982

Cited By

OSA participates in CrossRef's Cited-By Linking service. Citing articles from OSA journals and other participating publishers are listed here.

Alert me when this article is cited.


Equations (19)

Equations on this page are rendered with MathJax. Learn more.

F ( x , y ) y = 0
G ( x ) + δ G ( x ) = F ( x , y + δ y ) .
G ( x ) + δ G ( x ) = F ( x , y ) + 1 2 2 F y 2 ( δ y ) 2 ,
δ G ( x ) = 1 2 2 F y 2 ( δ y ) 2 .
S 12 ( x 1 , y 1 , x 3 , y 3 ) = S 1 ( x 1 , y 1 , x 2 , y 2 ) + S 2 ( x 2 , y 2 , x 3 , y 3 ) ,
p = ( x 1 2 + y 1 2 ) / 2 , q = x 1 x 2 + y 1 y 2 , r = ( x 2 2 + y 2 2 ) / 2 ,
s = x 2 x 3 + y 2 y 3 , t = ( x 3 2 + y 3 2 ) / 2 ,
u = x 1 x 3 + y 1 y 3 ,
S 1 q x 1 + ( S 1 r + S 2 r ) x 2 + S 2 s x 3 = 0 ,
S 1 q y 1 + ( S 1 r + S 2 r ) y 2 + S 2 s y 3 = 0.
x 2 = P x 1 + R x 3 ,
y 2 = P y 1 + R y 3 .
q = 2 P p + R u ,
r = P 2 p + P R u + R 2 t ,
s = P u + 2 R t .
P = S 1 q S 1 r + S 2 r ,
R = S 2 s S 1 r + S 2 r .
S 12 = S 1 ( x 1 , y 1 , P x 1 + R x 3 , P y 1 + R y 3 ) + S 2 ( P x 1 + R x 3 , P y 1 + R y 3 , x 3 , y 3 ) .
Eiksum := proc ( S 01 , S 02 , Nmax ) local Nc , S 1 , S 2 , S 12 , S 12 r , S 1 q , S 2 s , PP , RR , qq , ss , rr ; Nc : = ceil ( Nmax / 2 ) ; S 1 : = mtaylor ( S 01 , { p , q , r } , Nmax + 1 ) ; S 2 : = mtaylor ( S 02 , { r , s , t } , Nmax + 1 ) ; S 12 : = S 1 + S 2 ; S 12 r := diff ( S 12 , r ) ; if subs ( { p = 0 , q = 0 , r = 0 , s = 0 , t = 0 } , S 12 r ) = 0 then ERROR ( ' Inappropriate choice of variables .' ) fi ; S 1 q : = diff ( S 1 , q ) ; S 2 s := diff ( S 2 , s ) ; PP := map ( simplify , mtaylor ( S 1 q / S 12 r , { p , q , r , s , t } , Nc ) ) ; RR := map ( simplify , mtaylor ( S 2 s / S 12 r , { p , q , r , s , t } , Nc ) ) ; while has ( PP , { q , r , s } ) or has ( RR , { q , r , s } ) do qq := map ( simplify , expand ( 2 * PP * p + RR * u ) ) ; rr := map ( simplify , expand ( PP ˆ 2 * p + PP * RR * u + RR ˆ 2 * t ) ) ; ss := map ( simplify , expand ( PP * u + 2 * RR * t ) ) ; PP := map ( simplify , mtaylor ( subs ( { q = qq , r = rr , s = ss } , PP ) , { p , q , r , s , t , u } , Nc ) ) ; RR := map ( simplify , mtaylor ( subs ( { q = qq , r = rr , s = ss } , RR ) , { p , q , r , s , t , u } , Nc ) ) ; od ; qq := map ( simplify , expand ( 2 * PP * p + RR * u ) ) ; rr : = map ( simplify , expand ( PP ˆ 2 * p + PP * RR * u + RR ˆ 2 * t ) ) ; ss := map ( simplify , expand ( PP * u + 2 * RR * t ) ) ; S 12 : = mtaylor ( subs ( { q = qq , s = ss , r = rr } , S 12 ) , { p , u , t } , Nmax + 1 ) ; S 12 ;= collect ( S 12 , { p , u , t } , distributed ) ; S 12 ;= map ( simplify , S 12 ) ; end ;

Metrics