==Release 4.2 (TBD)==

==Additions and enhancements===

To SCons:

To documentation:

To APIs:

To the Python package:

To programs:

===Bug fixes===

In the reproducible documents collection:

In documentation:

In APIs:

In the Python package:

In programs:

In the build system:

===Changes in defaults and interfaces===

==Release 4.0 (2023-03-07)==

===Additions and enhancements===

To the reproducible documents collection:

* zju/diffrlrra: Separation and imaging of seismic diffractions using
  a localized rank-reduction method with adaptively selected ranks
  (Wang, Liu, and Chen)  
* tccs/drr5d: Simultaneous denoising and reconstruction of 5D seismic
  data via damped rank-reduction method (Chen, Zhang, Jin, Chen, Zu,
  Huang, and Gan)
* zju/odrr3d: Seismic signal enhancement based on the lowrank methods
  (Bai, Huang, Wang, and Chen)
* zju/odrr5d: Five-dimensional seismic data reconstruction using the
  optimally damped rank-reduction method (Chen, Bai, Guan, Zhang,
  Zhang, and Wang)
* zju/dtv: Full waveform inversion and joint migration inversion with
  an automatic directional total variation constraint (Qu, Verschuur,
  and Chen)
* tccs/anisodiff: Least-squares diffraction imaging using shaping
  regularization by anisotropic smoothing (Merzlikin, Fomel, and Wu)
* tccs/dtwaniso: Quantifying and correcting residual azimuthal
  anisotropic moveout in image gathers using dynamic time warping
  (Decker and Zhang)  
* tccs/dlchain: Automatic channel detection using deep learning (Pham,
  Fomel, and Dunlap)
* tccs/probdif: A Probabilistic Approach to Seismic Diffraction
  Imaging (Decker and Fomel)
* jlu/apefsnsep: Nonstationary pattern-based signal-noise separation
  using adaptive prediction-error filter (Zheng, Liu, and Liu)  
* jlu/fspfint: Seismic data interpolation using streaming prediction
  filter in the frequency domain (Zheng, Liu, and Liu)
* jlu/fxyspfdenoi: Noniterative f-x-y streaming prediction filtering
  for random noise attenuation on seismic data (Liu and Zheng)
* jlu/txyspfint: Seismic data interpolation without iteration using
  t-x-y streaming prediction filter with varying smoothness (Liu, Wu,
  and Zheng)
* tccs/wetm: Wave-equation time migration (Fomel and Kaur)
* tccs/varipick: A variational approach for picking optimal surfaces
  from semblance-like panels (Decker and Fomel)
* tccs/pwshape: Seismic data interpolation using plane-wave shaping
  regularization (Swindeman and Fomel)
* tccs/apwd: Seismic time-lapse image registration using
  amplitude-adjusted plane-wave destruction (Phillips and Fomel)
* tccs/dlaugment: Seismic data augmentation for automatic fault
  picking using deep learning (Pham and Fomel)
* jlu/lcfs: Continuous time-varying Q-factor estimation method in the
  time-frequency domain (Wang, Liu, Liu, and Zheng) 
* jlu/spefdecon: Multichannel adaptive deconvolution based on
  streaming prediction-error filter (Wang, Liu, Liu, and Zheng)

To SCons:

* added support for Rocky Linux
* upgraded to SCons-4.4.0

To documentation:

To APIs:

To the Python package:

To programs:

* user/tharit: New contributor (Tharit Tangkijwanichakul)
* user/reem: New contributor (Reem Alomar)

===Bug fixes===

In the reproducible documents collection:

In documentation:

In APIs:

In the Python package:

In programs:

In the build system:

===Changes in defaults and interfaces===

==Release 3.1.1 (2020-11-22)==

===Additions and enhancements===

To the reproducible documents collection:

To SCons:

To documentation:

To APIs:

To the Python package:

To programs:

===Bug fixes===

In the reproducible documents collection:

In documentation:

In APIs:

In the Python package:

In programs:

In the build system:

* Get rid of warnings during installation

===Changes in defaults and interfaces===

==Release 3.1 (2020-11-08)==

===Additions and enhancements===

To the reproducible documents collection:

* zju/sosvmf: Deblending of simultaneous-source data using a structure-oriented
  space-varying median filter (Chen, Zu, Wang, and Chen)
* zju/q: Multi-channel quality factor Q estimation (Chen)
* tccs/dealiase: De-aliased seismic data interpolation using seislet transform
  with low-frequency constraint (Gan, Wang, Chen, Zhang, and Jin)
* tccs/dmssa: Damped multichannel singular spectrum analysis for 3D random noise
  attenuation (Huang, Wang, Chen, Li, and Gan)
* tccs/demulemd: Multiple reflections noise attenuation using adaptive
  randomized-order empirical mode decomposition (Che, Xie, Zu, Gan, and Chen)
* tccs/halfthr: Irregular seismic data reconstruction using a
  percentile-half-thresholding algorithm (Chen, Chen, Shi, and Wang)
* tccs/dipseis: Dip-separated structural filtering using seislet transform and
  adaptive empirical mode decomposition based dip filter (Chen)
* tccs/dealiase2: One-step slope estimation for dealiased seismic data
  reconstruction via iterative seislet thresholding (Liu, Cao, Gan, Chen, Zu,
  and Jin)
* tccs/strsvd: Structure-oriented singular value decomposition for random noise
  attenuation of seismic data (Gan, Chen, Zu, Qu, and Zhong)
* tccs/drr3d: An open-source Matlab code package for improved rank-reduction 3D
  seismic data denoising and reconstruction (Chen, Huang, Zhang, and Chen)
* tccs/asa: Application of spectral decomposition using regularized
  non-stationary autoregression to random noise attenuation (Yang, Wang, Chen,
  Wu, Qu, Yuan, and Gan)
* tccs/sswtapp: Probing the subsurface karst features using time-frequency
  decomposition (Chen)
* zju/optnoise: Plane-wave orthogonal polynomial transform for
  amplitude-preserving noise attenuation (Chen, Huang, Zhou, Liu, and Zhang)
* tccs/sgk: Fast dictionary learning for noise attenuation of multidimensional
  seismic data (Chen)
* zju/qrtm: CuQ-RTM: A CUDA-based code package for stable and efficient
  Q-compensated reverse time migration (Wang, Zhou, Zhao, Zhang, Zhao, Yu, and
  Chen)
* tccs/cd: Compressive sensing for seismic data reconstruction via fast
  projection onto convex sets based on seislet transform (Gan, Wang, Chen, Chen,
  Chen, Huang, and Chen)
* tccs/svscan: Velocity analysis of simultaneous-source data using
  high-resolution semblance - coping with the strong noise (Gan, Wang, Chen, Qu,
  and Zu)
* tccs/pcastack: Application of principal component analysis in weighted
  stacking of seismic data (Xie, Chen, Zhang, Zu, and Chen)
* tccs/enhemd: Enhancing seismic reflections using empirical mode decomposition
  in the flattened domain (Chen, Zhang, Gan, and Zhang)
* tccs/npm: Data-driven time-frequency analysis of seismic data using
  non-stationary Prony method (Wu, Fomel, and Chen)

To SCons:

* Upgraded to scons-3.1.2

To programs:

* user/dirack: New contributor (Rodolfo A C Neves)
* sfvfsacrsnh: Zero offset CRS parameter inversion (RN, RNIP, BETA) with Very Fast Simulated Aneeling (VFSA) Global Optimization and non-hyperbolic CRS traveltime approximation.
* sfnhcrssurf: Build Non-Hyperbolic CRS approximation surface given RN, RNIP and BETA parameters.
* sfcrestack: Common Reflection Element (CRE) stacking
* sfcretrajec: Calculate CRE trajectory on CMP x Offset plane given zero-offset CRS parameters (RN, RNIP, BETA)
* sfgetcregather: Build CRE gather given CMP X Offset CRE trajectory coordinates and interpolated data cube
* sfgetcretimecurve: Calculate CRE traveltime curve t(m,h) given CRS zero-offset parameters (RN, RNIP, BETA)

* user/carrot: New contributor (Hongyu Zhou)
* sfacoustic1D: 1-D acoustic wave propapagation with CE absorbing boundary
* sfacoustic1D_FWI_ptb: 1-D acoustic FWI with Perturbation method
* sfacoustic1D_FWI_adj: 1-D acoustic FWI with adjoint state method
* sfviewbin: quick view of binary data (1D/2D/3D)

===Bug fixes===

In the reproducible documents collection:

In documentation:

In APIs:

In the Python package:

In programs:

In the build system:
* Support installation on CentOS 8 and Ubuntu 20.10

===Changes in defaults and interfaces===

==Release 3.0 (2019-09-09)==

===Additions and enhancements===

To the reproducible documents collection:

* tccs/fwiseislet: Full-waveform inversion using seislet
  regularization (Xue, Zhu, and Fomel)
* tccs/merge: Matching and merging high-resolution and legacy seismic
  images (Greer and Fomel)
* tccs/sobel: Plane-wave Sobel attribute for discontinuity enhancement
  in seismic images (Phillips and Fomel)
* tccs/t2dweak: Fast time-to-depth conversion and interval velocity
  estimation in the case of weak lateral variations (Sripanich and
  Fomel)
* tccs/elas: Recursive integral time extrapolation of elastic waves
  using low-rank symbol approximation (Sun, Fomel, Sripanich, and
  Fowler)
* data/marmousi2mp: 2D modeling and basic processing with Madagascar
  (Thongsang, Jiang, Li, and Schleicher)
* tccs/eseis: EMD-seislet transform (Chen and Fomel)
* jlu/txsopf: Streaming orthogonal prediction filter in $t$-$x$ domain
  for random noise attenuation (Liu and Li)
* jlu/gvdseisint: Seismic data interpolation using generalised
  velocity‐dependent seislet transform (Liu, Zhang, and Liu)
* tccs/acrossfault: Predictive painting across faults (Xue, Wu, and Fomel)
* tccs/sparse: Least-squares path-summation diffraction imaging
  using sparsity constraints (Merzlikin, Fomel, and Sen)
* tccs/gmresq: Q-compensated least-squares reverse time migration
  using low-rank one-step wave extrapolation (Sun, Fomel, Zhu, and Hu)
* tccs/welllogs: Missing log data interpolation and semiautomatic seismic
  well ties using data matching techniques (Bader, Wu, and Fomel)
* tccs/fraclapl: Viscoacoustic modeling and imaging using low-rank
  approximation (Sun, Zhu, and Fomel)


To SCons:

* Upgraded to scons-3.0.5

To documentation:

To APIs:

To the Python package:

* Partial upgrade for compatibility with Python 3

To programs:

* user/zgeng: New contributor (Zhicheng Geng)
* sfmatplotlib: plotting with matplotlib
* user/sgreer: New contributor (Sarah Greer)
* strip= parameter in sfdd
* sfbargraph: bar plot

===Bug fixes===

In the reproducible documents collection:

In documentation:

In APIs:

In the Python package:

In programs:

In the build system:

===Changes in defaults and interfaces===

==Release 2.0 (2017-07-08)==

===Additions and enhancements===

To the reproducible documents collection:

* xjtu/mcaseislet: Seislet-based morphological component analysis
  using scale-dependent exponential shrinkage (Yang and Fomel)
* tccs/aii: Structure-constrained relative acoustic impedance using
  stratigraphic coordinates (Karimi)
* jlu/riesz: Seismic dip estimation based on the two-dimensional
  Hilbert transform and its application in random noise attenuation
  (Liu, Chen, Wang, Liu, Wang, and Zhang)
* sep/balance: Iterative least-square inversion for amplitude
  balancing (Berlioux and Harlan)
* sep/elliptic2: The double-elliptic approximation in the group and
  phase domains (Dellinger and Muir)
* sep/sparse2: Test case for PEF estimation with sparse data II
  (Brown, Claerbout, and Fomel)
* tccs/vscan: Velocity analysis using similarity-weighted semblance
  (Chen, Liu, and Chen)
* tccs/group3: On anelliptic approximations for qP velocities in TI
  and orthorhombic media (Sripanich and Fomel)
* tccs/dbortho: Iterative deblending with multiple constraints based
  on shaping regularization (Chen)
* lju/vdseislet: Signal and noise separation in prestack seismic data
  using velocity-dependent seislet transform (Liu, Fomel, and Liu)
* tccs/svmf: Deblending using a space-varying median filter (Chen)
* tccs/shemd: Random noise attenuation by a selective hybrid approach
  using f-x empirical mode decomposition (Chen, Gan, Liu, Yuan,
  Zhang, and JIn)
* tccs/orthogroll: Ground-roll noise attenuation using a simple and
  effective approach based on local bandlimited orthogonalization
  (Chen, Jiao, Ma, Chen, Zhou, and Gan)
* tccs/intshape: Seismic data interpolation using nonlinear shaping
  regularization (Chen, Zhang, and Mo)
* tccs/dsd: Double sparsity dictionary for seismic noise attenuation
  (Chen, Ma, and Fomel)
* sep/geostat: Multiple realizations using standard inversion
  techniques (Clapp)
* tongji/qswave: Simulating propagation of separated wave modes in
  general anisotropic media, Part II: qS-wave propagators (Cheng and
  Kang)
* tccs/onestep: Lowrank one-step wave extrapolation for reverse-time
  migration (Sun, Fomel, and Ying)
* tongji/decoupledpropagation: Simulating propagation of decoupled
  elastic waves using low-rank approximate mixed-domain integral
  operators for anisotropic media (Cheng, Alkhalifah, Wu, Zou, and
  Wang)
* tccs/interval: Theory of interval traveltime parameter estimation in
  layered anisotropic media (Sripanich and Fomel)
* tccs/decomp: Elastic wave-vector decomposition in heterogeneous
  anisotropic media (Sripanich, Fomel, Sun, and Cheng)
* tccs/hyper3: 3D generalized nonhyperboloidal moveout approximation
  (Sripanich, Fomel, Stovas, and Hao)
* tccs/pi: Analytical path-summation imaging of seismic diffractions
  (Merzlikin and Fomel)
* tccs/ovc: Diffraction imaging and time-migration velocity analysis
  using oriented velocity continuation (Decker, Merzlikin, and Fomel)

To SCons:

* splitting auxiliary inputs when split= involves 'omp' or 'mpi'
* Upgraded to scons-2.5.1

To documentation:

To APIs:

* name= parameter in File for Python API
* Julia API

To the Python package:

To programs:

* user/zdzhang: New contributor (Zhendong Zhang)
* splitting auxiliary inputs in sfomp and sfmpi
* set delrt in trace headers in sfsegywrite
* header= parameter in sfcsv2rsf
* user/kregimbal: New contributor (Kelly Regimbal)
* user/dmerzlikin: New contributor (Dmitrii Merzlikin)
* user/sbader: New contributor (Sean Bader)
* char to int conversion in sfdd

===Bug fixes===

In the reproducible documents collection:

* Fixed links to the data files in the case of a non-default data server

In documentation:

* Fixed file names in selfdocs

In APIs:

* Fixed memory bug in stretch.c

In the Python package:

* Fixed parsing of comments in Fortran-90 programs

In programs:

* Fixed segmentation fault for sffft1 with no FFTW and no OMP
* Fixed case n1 > n2 in sfsvd
* Fixed join over a different axis in sfomp and sfmpi
* Fixed mwt= parameter in sfconjgrad
* Fixed half-order differentiation in sfslant
* Fixed offset handling in sfinmo

In the build system:

* Fixed installation of the gallery scripts
* Improved configuration for Fortran-90 programs
* Fixed Java API installation on Linux

===Changes in defaults and interfaces===

==Release 1.7 (2014-04-13)==

===Additions and enhancements===

To the reproducible documents collection:

* tccs/sglowrank: Lowrank seismic wave extrapolation on a staggered
  grid (Fang, Fomel, Du, and Hu)
* xjtu/primer: A numerical tour of wave propagation (Yang)
* Moved rsf/usp/data to data/freeusp/land and added elevation statics
* tongji/lrmode: Fast algorithms for elastic-wave-mode separation and
  vector decomposition using low-rank approximation for anisotropic
  media (Cheng and Fomel)
* tccs/deblend: Iterative deblending of simultaneous-source seismic
  data using seislet-domain shaping regularization (Chen, Fomel, and
  Hu)
* tccs/time2depth2: A robust approach to time-to-depth conversion and
  interval velocity estimation from time migration in the presence of
  lateral velocity variations (Li and Fomel)
* tccs/nmodeblend: Deblending using normal moveout and median
  filtering in common-midpoint gathers (Chen, Yuan, Jin, Chen, and
  Zhang)
* tccs/synwav: Time-frequency analysis of seismic data using
  synchrosqueezing wavelet transform (Chen, Liu, Chen, Li, and Wang)
* sep/txamo: The time and space formulation of azimuth moveout (Fomel
  and Biondi)
* jlu/txyapf: Adaptive prediction filtering in t-x-y domain for random
  noise attenuation using regularized nonstationary autoregression
  (Liu, Liu, and Liu)
* sep/shearer: Earthquake stacks at constant offset (Claerbout)
* sep/super: A prospect for super resolution (Claerbout)
* trip/asg: Acoustic staggered grid modeling in IWAVE (Symes)
* tccs/synth: Carbonate reservoir characterization using seismic
  diffraction imaging (Decker, Janson, and Fomel)
* sep/avo: Seismic AVO analysis of methane hydrate structures (Ecker
  and Lumley)
* tccs/scan3: A fast algorithm for 3D azimuthally anisotropic velocity
  scan (Hu, Fomel, and Ying)
* sep/passive: Passive seismic imaging applied to synthetic data
  (Rickett and Claerbout)
* tccs/ortho: Random noise attenuation using local signal-and-noise
  orthogonalization (Chen and Fomel)
* tccs/strat: Stratigraphic coordinates, a coordinate system tailored
  to seismic interpretation (Karimi and Fomel)
* sep/aal: When is anti-aliasing needed in Kirchhoff migration? (Bevc
  and Lumley)
* sep/pefmult: Multiple suppression using prediction-error filter
  (Sun)
* xjtu/gpufwi: A graphics processing unit implementation of
  time-domain full-waveform inversion (Yang, Gao, and Wang)

To SCons:

* Added SLURM support for running MPI jobs through SCons
* Added usedatapath= in Fetch for placing downloaded data in DATAPATH by default
* Upgraded to scons-2.3.4
* Allow Fetch to run with top=None

To documentation:

To APIs:

To the Python package:

* sfbatch: script for submitting jobs to a cluster queue system
* Changed MPIRUN from a command-line option to a configure option
* Updated sunrpc configuration for the current version of Cygwin on Windows
* vpannotate: interactive wrapper for annotations with sfbox

To programs:

* Added new color schemes (color= in sfgrey): lb (Light-Bartlein),
  gist_earth, spectral, seismic, owb (orange-white-black),  rwb
  (red-white-black), izoaz (isoluminant for azimuth data),
  montag (spectral lightness rainbow)
* sfipick: example Tkinter script for interactive picking
* sfvelan: interactive velocity picking using matplotlib
* Added x0= and mwt= parameters in sfconjgrad
* Added griddash= parameter to stdplot
* sflas2rsf: Convert LAS-2 well logs to RSF
* Added segy= and desc= parameters to sfheaderattr
* Renamed sfsvd sfpysvd and fixed sizes for output vectors
* Enabled depth= option for sfgraph with lines
* user/junyan: New contributor (Jun Yan)
* Added inv= flag in sfheaderwindow
* Added polyneg= flag in sfwiggle
* Added key= and nkey= parameters to sfheadermath
* sfcerf: complex error function
* color scheme can be specified by file name

===Bug fixes===

In the reproducible documents collection:

In documentation:

In APIs:

* Fixed __array_wrap__ bug in Python API
* Fixed bug in framenum with no label1 in stdplot
* Fixed occassional nan generated in sf_randn_one_bm

In the Python package:

In programs:

* Fixed output size bug in sfinttest1
* Fixed memsize definition bug in sfrotate and sfreverse
* Fixed handling of mask and offset files in sfnmo
* Fixed memory allocation bug in sfkirmod_newton

In the build system:

* Fixed MEXSUFFIX for 64-bit Macs
* Added '.exe' suffix for python programs in Cygwin
* Updated gdpen compilation for new versions of FFMPEG

===Changes in defaults and interfaces===

==Release 1.6 (2014-05-09)==

===Additions and enhancements===

To the reproducible documents collection:

* gallery: migration gallery
* Moved jsg to tccs
* tccs/buttefly: A fast butterfly algorithm for generalized Radon
  transforms (Hu, Fomel, Demanet, and Ying)
* tccs/opwd: Omnidirectional plane-wave destruction (Chen, Fomel, and
  Lu)
* tccs/specrecom: Automated spectral recomposition with application in
  stratigraphic interpretation (Cai, Fomel, and Zeng)
* Moved sep/aniso to cwp/aniso
* icp/sam2013gpushortestpath: Shortest path ray tracing on parallel
  GPU devices (Monsegny and Agudelo)
* tccs/nar: Seismic data decomposition into spectral components using
  regularized nonstationary autoregression (Fomel)
* tccs/dsrtomo: First-break traveltime tomography with the
  double-square-root eikonal equation (Li, Vladimirsky, and Fomel)
* cup/rna2d: Random noise attenuation using f-x regularized
  nonstationary autoregression (Liu, Chen, Du, and Wu)
* cup/rna3d: Noncausal f-x-y regularized nonstationary prediction
  filtering for random noise attenuation on 3D seismic data (Liu and
  Chen)
* tccs/psp: A parallel sweeping preconditioner for heterogeneous 3D
  Helmholtz equations (Poulson, Engquist, Li, and Ying)
* tccs/uncert: Structural uncertainty of time-migrated seismic images
  (Fomel and Landa)
* osu/shalek: modeling examples from Kyle Shalek and Jeff Daniels
* tccs/phase: Local skewness attribute as a seismic phase detector
  (Fomel and van der Baan)
* tccs/optapert: Selecting an optimal aperture in Kirchhoff migration
  using dip-angle images (Klokov and Fomel)
* Replaced most of Mathematica figures by Sage figures to improve
  reproducibility
* tongji/qpwave: Simulating propagation of separated wave modes in
  general anisotropic media, Part I: qP-wave propagators (Cheng and
  Kang)
* xtju/gpurtm: RTM using effective boundary saving: A staggered grid
  GPU implementation (Yang, Gao, and Wang)
* tccs/emdpf: Random noise attenuation by f-x empirical mode
  decomposition predictive filtering (Chen and Ma)
* Changes trip/iwave to trip/struct: IWAVE structure and basic use
  cases (Symes)

To SCons:

* Experimental IPython notebook in book/rsf/rsf/test/test.ipynb
* MKL check in configure only relevant for icc
* Upgraded to scons-2.3.1

To documentation:

* Added CITATION.txt file for the Madagascar paper in JORS.

To APIs:

* Updated numpy API for compatibility with the latest version of numpy
* Cast to float when writing data in Python API

To the Python package:

* fftw (if present) is included in core libraries during compilation
* Cygwin no longer provides libtirpc, removed it from configure
* Added support to tikz figures in reproducible documents
* Replaced -nojvm with -nodesktop for Matlab-generated figures
* Added workdir= paremeter to Flow

To programs:

* Added shift= parameter to sfkolmog
* Added eps= parameter to sflsfit
* user/fbroggin: New contributor (Filippo Broggini)
* sfpef renamed sfhpef
* sfpef (Wiener predictive error filtering) borrowed from SU's supef
* Added color=x cubehelix color scheme in sfgrey and sfgrey3
* Added inv= option to sfintbin
* Added pclip= option to sfscale
* user/jmonsegny: New contributor (Jorge Monsegny)
* user/pyang: New contributor (Pengliang Yang)
* creating rsfgee library in user/gee to avoid code duplication
* added sfput-like behavior in sfwindow and sfpad
* user/zhiguang: New contributor (Zhiguang Xue)
* user/hwang: New contributor (Hui Wang)
* user/ditthara: New contributor (Detchai Ittharat)

===Bug fixes===

In the reproducible documents collection:

* Fixed reproducibility issues in tccs/diffr/gom

In documentation:

In APIs:

* Look for mex in matlab's directory to avoid confusion with other
  programs named mex
* Fixed parallel.c for the case of less jobs than nodes
* Added missing fflush in sf_simtab_input
* Avoid taking log(0) in vp_optimal_scale
* Fixed memory leak in gettmpdatapath in file.c
* Fixed small memory leaks in getpar.c

In the Python package:

In programs:

* sfbyte: "clip" determination when the first plane is zero
* Fixed size definitions in sfinttest1
* Fixed off-by-one bug in sfrickerfit
* Avoid cropping of images by vplot2eps
* Read the whole cube for finding contours in sfcontour3
* Fixed shift by one in sfdespike
* Fixed interact= bug in xtpen
* Fixed the case of negative o1 in sfsegyheader

In the build system:

* Set -fopenmp for linking with gcc
* Fixed directory locations in pens/fonts
* Fixed typo in the configure script
* Fixed the case of RSFSRC set to a different directory
* Fixed oglpen compilation on Cygwin

===Changes in defaults and interfaces===

==Release 1.5 (2013-07-24)==

===Additions and enhancements===

To the reproducible documents collection:

* jsg/fpwd: Accelerated plane-wave destruction (Chen, Fomel, and Lu)
* swag/tau: Wavefield extrapolation in pseudodepth domain (Ma and
  Alkhalifah)
* jsg/lfd: Lowrank finite-differences and lowrank Fourier
finite-differences for seismic wave extrapolation in the acoustic
approximation (Song, Fomel, and Ying)
* sep/waverays: Wavefront construction using waverays (Urdaneta)
* swag/itime: Automatic traveltime picking using the instantaneous
  traveltime (Saragiotis, Alkhalifah, and Fomel)
* trip/test: Extended modeling in Madagascar (Liu and Symes)
* uwa/geo2013ElasticModellingGPU: Solving 3D anisotropic elastic wave
  equations on parallel GPU devices (Weiss and Shragge)
* jsg/eikods: Kirchhoff migration using eikonal-based computation of
  traveltime source-derivatives (Li and Fomel)
* jsg/orthorhombic: Modeling of pseudo-acoustic P-waves in
  orthorhombic media with a lowrank approximation (Song and
  Alkhalifah)

To SCons:

* Upgraded to scons-2.3.0

To documentation:

* Selfdocs include links for programs of the month

To APIs:

* Added m8r function for running Madagscar programs from MATLAB
* If C++ compiler works, C++ interface is installed by default
* added support for FFTW in cosft

To the Python package:

* Added an ability to have list arguments in configure
* Added MKL support in configure
* Added selfdocs for placeholders in bldutil
* Extended parallel split for sfomp and sfmpi
* Disabled SSE check in configure

To programs:

* Added scalebar= option for sfgraph with depth=
* Added an ability to specify options for sfpen with SFPENOPTS
* Added opt= parameter in sfspectra
* sfpad2nextfastsize: wrapper for kiss_fft_next_fast_size so it can be
  called from scripts and SConstruct files. Python wrapper for it:
  rsf.user.sf.pad2nextfastsize()
* Added forcebw= and force_raster options for pspen
* Added snap= option for sffftwave2
* Added frame numbers for movies made with sfgraph
* Included lbfgs in user/sparse
* user/fangg: new contributor (Gang Fang)
* Added an ability to specify a colortable in a CSV file
* user/luke: new contributor (Luke Decker)
* Moved some programs from user/fomels to user/pwd
* sfzoom: example Tkinter script for interactive zooming
* sfsegyheader can take tfile= parameter for input trace headers
* Extended join= option in sfomp and sfmpi to support adding (join=0)
* user/seisinv: new contributor (Yujin Liu)
* RVL package from Bill Symes and The Rice Inversion Project
* iwave++ package from Bill Symes and The Rice Inversion Project
* Moved iwave, rvl, and iwav++ to trip
* sfheadermath works with integer input
* user/zedong: new contributor (Zedong Wu)
* add Misolr25.cc which is double precision version using lowrank
* sfsegyheader: round-up for "delrt" and "dt" was fixed (aklokov)

===Bug fixes===

In the reproducible documents collection:

In documentation:

* Fixed nb= parameter in sfawefd2d and sfawefd3d

In APIs:

* Fixed from_either bug in F90 API

In the Python package:

In programs:

* Fixed bug with handling zero values in sfclip
* Fixed incorrect data size bug in sffindmo
* Fixed true colors in gdpen
* Fixed parallel split in sfomp and sfmpi
* Set o1= in sfsegyread
* Fixed memsize= checking in sftransp
* Fixed large-size limitation in sfpwspray2

In the build system:

* Replaced WhereIs('python') with sys.executable
* Check for OpenMP even at a single-CPU system
* Use integer*8 in f77 examples
* Fixed suitesparse configuration
* Fixed missing _vp.h dependence in pens/main

===Changes in defaults and interfaces===

==Release 1.4 (2012-04-22)==

===Additions and enhancements===

To the reproducible documents collection:

* jsg/lowrank: Seismic wave extrapolation using lowrank symbol
  approximation (Fomel, Ying, and Song)
* jsg/crs: Non-hyperbolic common reflection surface (Fomel and
  Kazinnik)
* trip/iwave: Using IWAVE (Symes)
* Viking Graben data moved to the public data server
* sep/fat: Imaging complex structures with first-arrival traveltimes
  (Bevc)
* sep/helft: Multi-dimensional Fourier transforms in the helical
  coordinate system (Rickett and Guitton)

To SCons:
* Support for XQuartz on Macs - looking in /opt/X11 directories
* np= parameter in Flow() for mpi programs
* sfdocs generated for all "pens" in pens/main
* pre-compilation of modules in book/Recipes
* upgraded to scons-2.2.0

To documentation:
* Self-doc is complete now for sfawefd2d and 3d

To APIs:
* python API (m8r or rsf.api) is now always installed
* tell and seek added to C++ API
* added support for FFTW and PSP
* shape() and reshape() methods in File class (python API) reversed
  for consistency with numpy

To the Python package:
* added support for gnuplot figures in rsf.tex
* added support for sage figures in rsf.tex

To programs:

* sfsemblance: semblance over the specified axis
* sflinear: linear 1-D interpolation
* sfspike now optionally accepts stdin
* iwave package from Bill Symes and The Rice Inversion Project
* user/zone: new contributor (Yanadet Sripanich)
* sfsegyheader creates delrt from o1
* user/poulsonj: new contributor (Jack Poulson)
* vpconvert  checks the existence of different pens and prefers gdpen
  to pngpen
* sffft1, sffft3, sfspectra, sfspectra2: optional support for FFTW
* oglpen stops movie on pressing 'n' or 'm', menu on left button on
  Macs
* creating rsfpwd library in user/fomels to avoid code duplication
* sfawefd2d and 3d: constant-density flag. Improved speed, memory
* sfgraph: depth= option for colored symbols
* sfcat and sfadd no longer have a limit on the number of files
* user/chengjb: new contributor (Jiubing Cheng)
* retired su2rsf and segy2rsf to avoid code duplication with suread
  and segyread
* user/jsun: new contributor (Junzhe Sun)

===Bug fixes===

In the reproducible documents collection:

In documentation:

In APIs:
* Fixed settype bug in Python API
* Fixed inpout selfdoc extraction for C++ programs

In the Python package:

* Fixed "scons test" in suproj

In programs:

* Fixed size limitation in sfclip2
* Added x0 and y0 in sfstolt
* Fixed installing the plplot driver with .driver_info extension

In the build system:
* Fixed failed dependency on gendoc.h when installing pens
* Fixed compilation with dynamic libraries

===Changes in defaults and interfaces===

* In sflwefd: *q1 and *q2 parameters become *qx and *qz, respectively

==Release 1.3 (2012-04-22)==

===Additions and enhancements===

To the reproducible documents collection:

* jsg/reversible: A reversible transform for seismic data processing
  (Burnett and Ferguson)
* sep/pyramid: The pyramid transform and its application to
  signal/noise separation (Sun and Ronen)
* jsg/ffd: Fourier finite-difference wave propagation (Song and Fomel)
* jsg/apefint: Seismic data interpolation beyond aliasing using
  regularized nonstationary autoregression (Liu and Fomel)
* jsg/timefreq: Time-frequency analysis of seismic data using local
  attributes (Liu, Fomel, and Chen)
* data/alaska: Open Data/Open Source: Seismic Unix scripts to process
  a 2D land line (Schleicher)
* jsg/ltft: Seismic data analysis using local time-frequency
  decomposition (Liu and Fomel)

To SCons:

* Upgraded to scons-2.1.0

To documentation:

* Python API documented with Epydoc
* Limited the number of USED IN examples displayed by selfdoc and man
 pages (25 by default, controled by -u parameter in sfdoc)
* book/tutorial: A brief introduction to Madagascar (Jeff Godwin)
* Added selfdoc for sfomp and sfmpi

To APIs:

* librsfsegy / rsfsegy.h as a separate library

To the Python package:

* an option for the user to overwrite the installed config.py with
  ./rsfcfg.py or ~/.rsfcfg.py

To programs:

* sfgrey4: generate movie of 3-D cube plots.
* sfungrad: phase unwrapping by least squares.
* sfhistogram now takes integer input as well
* sfhist2: 2-D float with integer or float inputs
* in-core large-file (>2Gb) support in sfwindow and sftransp
* sfsparsify: put nonzero elements of 2-D array into sparse form
* sfmoveout: put spikes at an arbitrary moveout.
* sfcconv: 1-D convolution with complex numbers.
* sfpyramid: pyramid transform.
* sfshapeagc: automatic gain control by shaping regularization.
* modified sfsuwrite for consistency with sfsuread
* user/chen: new contributor (Zhonghuan Chen)
* sffoldplot: build a seismic fold map
* tkvpconvert: GUI for vpconvert
* user/rweiss: new contributor (Robin Weiss)
* sfewefd2d_gpu: 2d FDTD wave equation with GPU
* sfewefd3d_gpu: 3d FDTD wave equation with GPU
* user/aklokov: new contributor (Alexander Klokov)
* user/ediazp: new contibutor (Esteban Diaz)

===Bug fixes===

In the reproducible documents collection:

In documentation:

* Included previously undocumented parameters (dash,plotcol,plotfat)
  in stdplot.
* Fixed selfdoc for Python scripts

In APIs:

In the Python package:
* Hires Bounding Box detection in Mathematica plots
* Location of config.py in configure.py
* Prevent segfault when the input file is closed prematurely.

In programs:
* Fixed sfpen (via dovplot) bug
* Fixed sflosignoi bug
* Fixed sfdots axis-positioning bug
* Fixed sfmath crash when datapath was specified
* Fixed handling of infinite values in sfgraph
* Fixed handling of different output size in sfiwarp
* Fixed sftransp off-core I/O bug

In the build system:
* Fixed bug that resulted in BLAS/ATLAS-based programs to not install in Fedora
* Eliminated hardcoded paths that made it impossible to package m8r
* Workaround for SCons bug #1488
* Fixed MacPorts and Fink path detection for compilers other than gcc
  on Mac
* Fixed bug preventing spaces in ./configure arguments
* Fixed cfortran.h dependency in api/f77
* Added OpenMP suppport for C++ programs

===Changes in defaults===

==Release 1.2 (2011-07-14)==

===Additions and enhancements===

To the reproducible documents collection:

* swag/anisogath: Angle gathers in wave-equation imaging for
  transversely isotropic media (Alkhalifah and Fomel)
* jsg/agath: Theory of 3-D angle gathers in wave-equation seismic
  imaging (Fomel)
* cwp/pept2011MicroearthquakeMonitoring: Micro-earthquake monitoring
  with sparsely-sampled data (Sava)
* jsg/vc3: Azimuthally anisotropic 3D velocity continuation (Burnett
  and Fomel)
* milano/taupvel: Velocity-independent tau-p moveout in a
  horizontally-layered VTI medium (Casasanta and Fomel)
* swag/thetaScan: Traveltime approximations for transversely isotropic
  media with an inhomogeneous background (Alkhalifah)
* cwp/geo2011WideAzimuthAngleDecomposition: Wide-azimuth angle gathers
  for wave-equation migration (Sava and Vlad)

To SCons:

* New directory structure:
  documentation under $RSFROOT/share/doc/madagascar
  other supplemental files under $RSFROOT/share/madagascar

To documentation:

* Info from VERSION.txt being printed in man pages for all programs
* Informative message at the end of successful global builds

To APIs:

* Fetch, Movie, and other enhancements in Python API
* Input class (can read int and float pars from stdin) in Python backup API
* Added reading complex-valued data to rsf_read in Matlab API

To the Python package:

* More intuitive interface for rsf.user.ivlad.run()
* Expanded options for rsf.user.ivlad.exe()

To programs:

* sfkdmig2d: 2-D Prestack Kirchhoff depth migration (borrowed from SU)
* wanttitle= option in thplot
* color=w periodic color table in grey and grey3
* sfin accepts data from standard input
* sfmath accepts sign() function
* all= option in sfget
* sfbar: separate program for creating scalebar data
* sflorenz (generate Lorenz attractor)
* sfcat/sfmerge accept order= parameter
* user/xuxin

===Bug fixes===

In the reproducible documents collection:

In documentation:
* Fixed missing parameter documentation in stdplot

In APIs:

* Fixed rsf_write to write complex-valued data
* Enabled building of dynamic libraries

In the Python package:

In programs:

* Fixed parameter-setting bug in sfstoltstretch
* Fixed float-to-int truncation bug in sfdd triggered by Intel C Compiler 10
* Fixed large-file-support bug in sfshot2cmp
* Fixed plane#= bug is sfeikonal
* Fixed error message bug in sfsegyheader

In the build system:
* Madagascar now compiling with CC=icc LINKFLAGS=-static-intel

==Release 1.1 (2011-01-18)==

===Additions and enhancements===

To the reproducible documents collection:
* rsf/bash: Vladimir Bashkardin's presentation at Houston-2010
* rsf/programming: Jeff Godwin's presentation at Houston-2010
* rsf/usp: Yang Liu's presentation at Houston-2010
* \published{} macro added to all published papers
* sep/fractal: Modeling 3-D anisotropic fractal media (Chemingui)
* sep/banana: Traveltime sensitivity kernels: Banana-doughnuts or just plain bananas? (Rickett)
* swag/eikds: An eikonal based formulation for traveltime perturbation with respect to the source location (Alkhalifah and Fomel)
* cwp/geo2008IsotropicAngleDomainElasticRTM: Isotropic angle-domain elastic reverse-time migration (Yan and Sava)
* jsg/stackadcig: Stacking angle-domain common-image gathers for normalization of illumination (Liu et al.)
* cwp/geo2009VTIModeSeparation: Elastic wave-mode separation for VTI media (Yan and Sava)
* cwp/geo2009TTIModeSeparation: Elastic wave-mode separation for TTI media (Yan and Sava)
* jsg/flat: Predictive painting of 3-D seismic volumes (Fomel)
* jsg/oc3: OC-seislet: seislet transform construction with differential offset continuation (Liu and Fomel)
* sep/lines: Random lines in a plane (Claerbout)
* hansung/cgg: Conjugate guided gradient (CGG) method for robust inversion and its application to velocity-stack inversion (Ji)
* sep/texture: Texture synthesis and prediction error filtering (Brown)
* Grave directory for papers that are no longer reproducible

To SCons:
* Upgraded to scons-2.0.1

To documentation:
* Update to vplot man pages
* This file (NEWS.txt)

To APIs:
* New, improved Java API: Cleaner, independent from Mines JTK. Not compatible with the old API

To the Python package:
* rsf.user.ivlad: chk_file_r, getppout, get1st functions
* rsf.user.m8rex: WrongPath exception class
* rsf.user.sf: attr function
* rsf.version: info about the software version

To programs:
* tkMadagascar (sfgui and sfbrowser)
* sflmo (frequency-domain LMO)
* sfcp - added functionality to act as a filter
* sftaupmo - added functionality for effective/interval velocities
* sfktmig (prestack time migration
* sfrotate - added functionality for negative rotations
* sfmedian (median on the first axis)
* sfregr (linear regression)
* sfsvd (SVD using scipy)
* sfthreedcube (3D display using mayavi2)
* sfiphase -added complex option
* sfsensitivity (traveltime sensitivity kernels)
* sfcltft (complex local time-frequency transform)
* sfclpf (complex local prediction filter)
* sfiwarp2 (inverse 2-D warping)
* many new programs in user/lcasasan
* user/jun

===Bug fixes===

In the reproducible documents collection:
* Cross-platform (Linux/Mac) solution in book/jsg/flat/*/SConstruct
* Fixed program links in book/bei/fdm and book/bei/ft1
* Fixed program links in book/gee/ajt and book/gee/hlx
* High-resolution figures in book/gee/hlx

In documentation:
* Update of html/txt/spec documentation and man pages triggered by changes in programs or examples through dependence on use.py
* Show y and n for boolean parameters in F90 programs, instead of .true./.false.
* Show y and n for boolean params in some Python programs instead of True/False
    (fix for some cases in which existing mechanism did not work)

In APIs:
* Appropriate flags for compilation on OpenSolaris
* Fixed memory leak in getpar.c
* Fixed memory leak in llist.c
* Improved accuracy of triangle smoothing
* Updated numpy interface in m8r.i

In the Python package:
* In rsf.user.ivlad (function ndims)
* In rsf.user.ooio (init of class RSFheader)
* CUDA configuration moved to configure.py

In programs:
* sfbandpass
* sfzcp
* sfstretch - proper handling of half-offset
* sfslant and sfvelcon - proper antialiasing

==Release 1.0 (2010-07-23)==

No release notes for 1.0 or before

==About this document==

This document is found both as a wiki page at
http://www.ahay.org/wiki/Release_Notes , and under source version
control (SVN) at
http://sourceforge.net/p/rsf/code/HEAD/tree/trunk/NEWS.txt . The SVN
version is the definitive one. Before a release, the content of the
latest section of the wiki page and that of the corresponding part of
NEWS.txt should be reconciled.
