Path: utzoo!attcan!uunet!lll-winken!lll-lcc!ames!mailrus!uflorida!gatech!gitpyr!loligo!mccalpin From: mccalpin@loligo (John McCalpin) Newsgroups: comp.lang.fortran Subject: Fortran-8X SHIFT intrinsics Keywords: CSHIFT, EOSHIFT, helical shift, long vectors Message-ID: <351@loligo.fsu.edu> Date: 4 Jan 89 18:03:05 GMT Sender: mccalpin@loligo.fsu.edu Reply-To: mccalpin@loligo.cc.fsu.edu (John McCalpin) Organization: Supercomputer Computations Research Institute Lines: 21 The Fortran-8X proposed standard has some nice intrinsics for manipulating conformant array sections. In particular, the CSHIFT and EOSHIFT intrinsics are available for circular and end-off shifts, respectively. These two operators are easiest to implement on vector machines using a series of one-dimensional operations, but take a bit more work to collapse into multi-dimensional operations. My codes are characterized by a great many shift operations for which I don't care what gets shifted in the other side, since I won't use it anyway. I keep borders in my arrays and only operate on interior values. Therefore I would like to see another intrinsic, which I call USHIFT (Undefined SHIFT), which can shift in whatever it wants. In particular, a helical shift can be implemented by treating the multi-dimensional array as a 1-d array and shifting the 1-d array as a whole. Does this sound like a generally useful addition? I know that it would improve performance substantially on CDC/ETA machines relative to CSHIFT or EOSHIFT, but I don't know if anyone else would use it. John D. McCalpin Supercomputer Computations Research Institute mccalpin@masig1.ocean.fsu.edu mccalpin@fsu (BITNET or MFENET)