Change Log

== MCX-CL 3.0.0 (v2026, Juxtaposition), FangQ <q.fang at neu.edu> ==
 2026-10-29 [1346c53]*[feat] -G/cfg.gpuid picks a device by name: "4070" the first device whose name contains it, "titan:2" the 2nd
 2026-10-29 [6f2f2bf]*[bug] zero the output buffer by a write, not clEnqueueFillBuffer, which leaves old data on Apple GPUs
 2026-10-29 [ee5dbda]*[bug] package the mex files without upx: a packed mex aborted MATLAB/Octave on any error it raised
 2026-10-29 [bd7bac2] [ci] the mcxlabcl tests need the mcxlab utilities (mcxdetphoton ...) of mcx on the Octave path
 2026-10-29 [c5fd742] [feat] -l none prints nothing, not even the progress bar, as cfg.flog='none'
 2026-10-29 [826495d] [feat] cfg.flog='none' silences the log; 'NUL' and '/dev/null' stay accepted on every OS, refs fangq/mcx#280
 2026-10-29 [cbb5436]*[bug] cfg.flog: 'NUL' and '/dev/null' are the null device on every OS, refs fangq/mcx#280
 2026-10-29 [162ebd4] [test] binding tests of every source type, launch angles, polarized runs, input types
 2026-10-29 [552d641]*[bug] mcxlabcl/pmcxcl: accept any numeric class and column vectors, debuglevel 'T', unknown commands
 2026-10-29 [45992bc] [bug] initialize the normalizer: stat.normalizer of a run without normalization was garbage
 2026-10-29 [27effdc]*[test] unit tests of the pmcxcl and mcxlabcl interfaces, with short end-to-end checks
 2026-10-29 [3ff79ff]*[bug] mcxlabcl: an empty cfg field keeps its default, instead of being read as 0
 2026-10-29 [68b84f8]*[bug] per-voxel media: scale mua/mus by unitinmm once, whatever the field order
 2026-10-29 [de50fb2] [doc] pmcxcl: NumPy-style package docstrings, and a full help of run()
 2026-10-29 [bd6078a]*[feat] mcxlabcl/pmcxcl: cfg.flog also controls the echo of the cfg fields, so it can silence everything
 2026-10-29 [d212f22] [bug] a bare -l writes the log to <session>.log, as in mcx; document -l 0 and cfg.flog
 2026-10-29 [f74782f] [clean] regenerate the embedded kernel mcx_core.clh from the current mcx_core.cl
 2026-10-29 [f32dbc5] [bug] cfg.flog=0 (and -l 0) hides the banner; pmcxcl prints the flog=2 log to sys.stdout
 2026-10-28 [7c043b7] [clean] one space between the fields of the $Rev line of the help banner
 2026-10-28 [1b488d4] [doc] example/README.txt: an index of all examples
 2026-10-28 [3628d60] [doc] v2026 docs: the final What's New items, known device issues, ChangeLog and NEWS
 2026-10-28 [e6f1a09] [clean] the host RNG with uint64_t, not long long (C++98 -pedantic warnings)
 2026-10-28 [096219c] [test] suppress glibc's ld.so strncmp report in the valgrind check
 2026-10-28 [b0fa357] [test] forked unit-test children leave through _exit(), as in mmc
 2026-10-28 [5cba5e9] [bug] create the progress counter buffer read-write: the kernel writes it
 2026-10-28 [9cd62d1] [test] macOS: let the forked EXPECT_EXIT cases use OpenCL in the unit tests
 2026-10-28 [11e734f] [test] testbuiltin.sh runs where timeout is gtimeout or missing (macOS), as in mmc
 2026-10-28 [48e38ac] [feat] derive the per-thread seeds with xorshift128+ instead of the C library rand()
 2026-10-28 [f814f77] [feat] always use atomic accumulation, drop the non-atomic paths, as mcx 4e2fd41
 2026-10-28 [39aa57d] [clean] no LFLAGS for mkoctfile, deprecated by Octave; LDFLAGS has the same libraries
 2026-10-28 [d25f64d] [clean] fix the clang warnings of the macOS build
 2026-10-28 [3caf4bc] [clean] build with the Khronos OpenCL headers on macOS, no CL_SILENCE_DEPRECATION
 2026-10-28 [136ff3a] [clean] %lld for the long long array dimensions of Octave (-Wformat)
 2026-10-28 [5e7c01d] [ci] macOS Octave mex: no path to the build machine's liboctmex or libstdc++
 2026-10-28 [1378fe2] [test] check only that the 300-media run completes, as a CPU device needs no smaller block
 2026-10-28 [96c63d0] [clean] store the RCS keywords of mcx_utils.c unexpanded, as mcx and mmc do
 2026-10-28 [43e0e07] [test] the progress bar of a source on the domain boundary finishes
 2026-10-28 [155b45e] [test] feature tests shared with mcx: JData block index, detector masks, validation, host paths
 2026-10-28 [b83c23b] [port] shrink the block when the per-photon local memory exceeds the device limit
 2026-10-28 [76e48a9] [port] mask split voxels of two media next to background as detector voxels
 2026-10-27 [b770730] [doc] What's New: lead with adjoint Jacobians and FD/RF forward and Jacobians
 2026-10-27 [674ad6d] [doc] What's New: the long-standing OpenCL memory leak is fixed, refs #66
 2026-10-27 [ad829cf] [clean] fix gcc and clang warnings, including with gcc 5 on Ubuntu 16.04
 2026-10-27 [063a268] [build] rebuild the bundled zmat when its sources change
 2026-10-27 [979c455] [port] adjoint mode: only simulate and store the sources and detectors in cfg.sdmap
 2026-10-27 [4b9519b] [bug] mcxlabcl: raise errors in MATLAB instead of aborting it, refs fangq/mcx#278
 2026-10-27 [770cf11] [feat] pmcxcl: accept a 3-column cfg['detdir'], as mcxlabcl and cfg['srcdir']
 2026-10-27 [a4f2b0d] [feat] mcxlabcl: accept a 3-column cfg.detdir, as cfg.srcdir
 2026-10-27 [e637b5c] [doc] README and ChangeLog: test/fuzz/dfuzz.py, test/builtin and the bugs the fuzzer found
 2026-10-27 [73a7aea] [test] add test/fuzz/dfuzz.py and the builtin inputs of mcx (test/builtin)
 2026-10-27 [7c1fcba] [bug] fix crashes, hangs and memory errors found by the new fuzzer
 2026-10-27 [701fdf1] [doc] README: fixed-point sums in split planes, with the measured speeds
 2026-10-27 [926b0de] [speed] USE_FIXEDPOINT: keep the low and high words in separate planes
 2026-10-27 [fb6c080] [doc] README: fixed-point output sums (make fixed)
 2026-10-27 [1d2af50]*[port] USE_FIXEDPOINT: accumulate the output as 64-bit fixed-point integers (make fixed)
 2026-10-26 [1080899] [doc] demo_validate_mcx_adjoint_mua_d: the Jacobians are in flux.jmua/flux.jd, not flux.data
 2026-10-26 [f577abe] [port] cfg.sdmap/Optode.SDMap: compute the adjoint Jacobian for listed source-detector channels, refs fangq/mcx#275
 2026-10-26 [39f7a91] [doc] rewrite the README for users: OpenCL runtimes per processor, device selection and kernel options, differences from MCX, OpenCL best practices, and the sections shared with MCX
 2026-10-25 [c06cdf0] [feat] mcxlabcl/pmcxcl: issave2pt, flog and lang as in mcxlab/pmcx
 2026-10-25 [369b4d8] [doc] rewrite the mcxlabcl help: document every cfg field the mex reads
 2026-10-25 [df06e86] [doc] update the author's title to Professor
 2026-10-25 [87dd73e] [cjson] upgrade the bundled cJSON from 1.7.12+ (f790e17, 2020) to 1.7.19
 2026-10-25 [2964165]*[feat] save and use the JData block index (_ArrayZipOffsets_) of zlib/gzip data
 2026-10-25 [65dfa31]*[zmat] sync the bundled zmat to upstream 1.2.0 (d1a1e94): parallel zlib/gzip
 2026-10-25 [d9d469a] [ci] strip the binaries and mex files before compressing them with UPX (Linux/Windows)
 2026-10-25 [bb15c87] [doc] What's New: the fuzzing campaigns, unit-test coverage and input hardening
 2026-10-25 [04a7734] [bug] read Session.OutputType names, not just their first letter
 2026-10-25 [553026a] [ci] add the liboctmex SOVERSION symbol Octave 10+ requires to the Linux mex
 2026-10-25 [eba04a7] [doc] bring the README and doc/ up to date for v2026
 2026-10-25 [986bc2c] [clean] use https for mcx.space, neurojson.io and fanglab.org links
 2026-10-25 [614e647] [bug] save the imaginary part of RF forward output; keep unnormalized wltof/wptof in seconds
 2026-10-25 [ef650f2] [bug] fix hangs found by fuzzing round 4: zero effective mus, minenergy >= 1, tiny voxels
 2026-10-25 [2f495dc] [bug] let a caller-supplied volume buffer through the Shapes size check; skip mcx-input tests without mcx
 2026-10-25 [a3aefe2] [ci] build the Linux release in manylinux2014 so it runs on glibc 2.17+
 2026-10-25 [70ef956] [bug] reject invalid -u/-W/-K/-Z values and stray SrcNum found by fuzzing round 3
 2026-10-25 [55da8c8]*[bug] fix crashes and hangs found by fuzzing JSON inputs and command-line options
 2026-10-24 [c9de165] [test] raise host coverage to 95%: NeuroJSON downloads, JSON/inp branches, kernel build errors
 2026-10-24 [00d55fc] [bug] fix -r: repeat or split the photons as documented, stop double counting
 2026-10-24 [25ea487] [port] treat a time step of 0 as a single time gate, as mcx does
 2026-10-24 [57b272b] [bug] save the adjoint Jacobians, not the slot fields, from the mcxcl binary
 2026-10-24 [7fe8bea] [test] add host unit tests and short GPU feature tests
 2026-10-24 [326b891] [bug] fix bugs in mcx_utils, shapes and Mie found by the new unit tests
 2026-10-24 [7271a23] [port] update the ubj library to the mcx copy (BJData Draft 2)
 2026-10-23 [ef4ec6b] [port] make mcx2json and json2mcx round-trip all mcxlab settings
 2026-10-23 [e14dbef] [port] save Mie, phase function, boundary, RF and polarization settings in --dumpjson
 2026-10-23 [9ba3f89] [bug] do not export the static libstdc++ symbols of _pmcxcl on Linux
 2026-10-23 [ceb56c8] [clean] silence constant-operand warnings and NVIDIA's noinline note in kernel build logs
 2026-10-23 [5e139f0] [bug] build cl_ext_float_atomics kernels as OpenCL C 3.0, fix the build failure on Intel Arc
 2026-10-23 [0ea029c] [pmcxcl] export pmcx.svmc as pmcxcl.svmc when the installed pmcx has it
 2026-10-23 [3239bbc] [pmcxcl] accept 4-channel float and 4-D uint8 volumes, fix the adjoint flux shape, as pmcx does
 2026-10-23 [aca5a92] [port] make json/jdata inputs and --dumpjson outputs read back as the same simulation, from mcx 06fab97
 2026-10-23 [5e6ba6c] [bug] set energyabs at the end of every run, as mcx does
 2026-10-23 [19f8f55] [bug] skip the planar launch offset in OpenCL pattern3d builds, fix the doubled source extent
 2026-10-23 [03db872] [bug] do not write NO_LAUNCH into n_seed, it corrupted other threads' RNG seeds
 2026-10-23 [00fcf09]*[bug] track the split-voxel side and exits as mcx does, fix the svmc mismatch with mcx
 2026-10-23 [5acc84f]*[bug] end photons entering label 0 as mcx does, fix a hang with interior label-0 regions
 2026-10-22 [dda7a2f] [doc] update and polish the mcxcl READMEs for v2026
 2026-10-22 [5684aab] [doc] note that autopilot runs are not bit-reproducible, -A 0 is
 2026-10-22 [69f9c3c] [release] bump pmcxcl to 0.7.5 for the new host seeds and macOS wheels
 2026-10-22 [d4ce642] [ci] target macOS 10.15 (x86_64) and 11.0 (arm64), build every macOS wheel even if one fails
 2026-10-22 [7382824] [test] copy the trajectory goldens regenerated by mcx for the new host seeds
 2026-10-22 [0ad93bb]*[bug] draw uniform 32-bit host seeds for the GPU RNG, the old ones set 75% of the bits
 2026-10-22 [48d65ee] [doc] match the version in the pmcxcl README to 0.7.4
 2026-10-22 [0c0920c] [release] bump pmcxcl to 0.7.4
 2026-10-22 [7ed8900] [ci] decide PyPI uploads per file, not per version
 2026-10-22 [b429887] [pmcxcl] make pmcxcl.mcxlab run the simulation with pmcxcl, fix #60
 2026-10-22 [e60e2cb] [pmcxcl] report why _pmcxcl failed to import instead of claiming it is not compiled
 2026-10-22 [ee9125f] [ci] tag macOS wheels with the runner architecture instead of universal2, check them
 2026-10-22 [4fa20b7] [feat] accept --maxvoidstep and --trajstokes on the command line as mcx does
 2026-10-22 [a347ac9] [bug] write iquv to trajectory files only when the records contain it
 2026-10-22 [1f124f9] [bug] size trajectory buffers for the Stokes columns when istrajstokes is set
 2026-10-22 [826fd55] [bug] read Optode.Source.IQUV from JSON input, validate the initial Stokes vector
 2026-10-22 [b3af30b] [bug] tabulate the Mie Mueller matrix at 1000 angles as mcx does, not 181
 2026-10-21 [9b8b1ab] [ci] publish packages only when the run was started by the fangq account
 2026-10-21 [f59ad8a] [ci] upload the Linux wheels to PyPI from one x86_64 job, keep them as build artifacts
 2026-10-21 [5f796b6] [ci] decide PyPI uploads from the PyPI JSON API and never upload when the query fails
 2026-10-21 [7324e8c] [ci] build the Khronos OpenCL loader when ocl-icd is missing, build mcxlabcl with Octave's own gcc on Windows
 2026-10-21 [741933c] [ci] run the POCL CPU tests on Ubuntu 24.04 only, let each OS finish
 2026-10-21 [7b8f5f2] [bug] build the kernel without -cl-unsafe-math-optimizations when saving or replaying seeds
 2026-10-21 [b59b0d0] [release] keep the python module version at the published one until the release
 2026-10-21 [8b70c29] [bug] reject mixlabel volumes with a clear error instead of failing in the kernel
 2026-10-21 [e6a2ee1] [test] run testmcx.sh in a scratch folder instead of overwriting the files tracked in test/
 2026-10-21 [3451244] [bug] load asgn_float volumes, fix crash saving detected photons with labelplus/asgn_float
 2026-10-21 [09a8c18] [doc] refresh the v2026 ChangeLog, NEWS and README change lists
 2026-10-21 [b3040bc] [bug] pass uint32 and float32 label volumes as 32bit labels in pmcxcl/mcxlabcl, reject unknown media formats
 2026-10-21 [49215c9] [doc] refresh the v2026 ChangeLog, NEWS and README change lists
 2026-10-21 [9f6aec7] [bench] sync the skinvessel benchmark with mcx (fluence output, no index mismatch)
 2026-10-21 [7edde8a] [bug] save the fluence data, not an uninitialized buffer, in nifti output (-F nii)
 2026-10-21 [fb8f61b] [test] compare trajectories per photon: 5e-2 mm tolerance, tolerate up to 10% forked photons
 2026-10-21 [f85f5c3] [doc] refresh the v2026 ChangeLog, NEWS and README change lists
 2026-10-21 [3e98c4d] [doc] list the 1.2-1.5x OpenCL speedup in What's New
 2026-10-21 [8680d3f]*[perf] port speedopt (bc71b4b): dynamic photon dispatch, 1-byte label volume, unsafe-math JIT; 1.2-1.5x on OpenCL
 2026-10-21 [d7396f4] [bug] fix swapped sin/cos in MCX_SINCOS when native math is disabled (-o 0)
 2026-10-21 [9dee642] [ci] run the step-by-step trajectory tests on the POCL CPU device
 2026-10-21 [fe386b6] [release] set the v2026 (3.0) codename to Juxtaposition, fix 1.8.0 codename in mcxlabcl/NEWS
 2026-10-21 [15824d5] [doc] refresh the v2026 ChangeLog, NEWS and README change lists
 2026-10-21 [d1a0e24] [doc] list the RF replay, adjoint and pattern-replay fixes in What's New, update TODO
 2026-10-21 [0a478d7] [bug] fix segfault normalizing multi-pattern pattern3d output
 2026-10-21 [a2bc0a4] [port] deposit RF imaginary parts per pattern in photon sharing, from mcx ad0f881/8781d36
 2026-10-21 [d1e0f32] [test] add pattern-replay and non-zero rfmus replay checks to testmcx.sh
 2026-10-21 [2a14c42]*[port] apply per-pattern stride and weight in wp/dcs/wptof/rfmus replay, from mcx ba36c98
 2026-10-21 [6b64571] [port] launch adjoint detector sources as disks before beam focusing, from mcx 9ec176e
 2026-10-21 [57545b0]*[bug] fix adjoint (-O A/D/U/V/W/Q) on the command line, fix detector JSON with Dir
 2026-10-21 [7e92747]*[bug] fix all-zero RF replay (-O r/s) output, write cos/sin to the shifted ppath slot
 2026-10-21 [7648ff0] [doc] v2026 What's New, ChangeLog and NEWS entries, refresh TODO list
 2026-10-21 [9591c05] [release] bump version to v2026 (3.0), pmcxcl to 0.8.0, update copyright years
 2026-10-21 [54559ae] [ci] run testmcx.sh and the trajectory tests on the POCL CPU device on Linux
 2026-10-21 [7bb12a9]*[bug] fix off-by-one photon index in wp/dcs/wptof/rfmus replay, port replay fixes from mcx
 2026-10-21 [88e248e] [port] save nscat in .jdt/.jdb by reinterpreting the kernel's uint bits (mcx 0bd0a73)
 2026-10-21 [d7ea87b] [port] make -U 2 only skip the detected-weight normalization in replay (mcx 1be8bad)
 2026-10-21 [b5d3b0a] [port] fix double pre-processing when using -j/--json (mcx 71b3d6c)
 2026-10-21 [0b17a15]*[port] save detected photons/trajectories as .jdt (text) or .jdb (binary), split srcid (mcx 6d7a81a, 6444821)
 2026-10-21 [253b22f]*[test] step-by-step trajectory tests against mcx golden data
 2026-10-21 [809dc7f] [test] also skip the cuda-memcheck stub shipped by the HPC SDK
 2026-10-21 [c18e9e7] [port] save the photon position at refractive interfaces in trajectories (mcx f959c71)
 2026-10-21 [95b9dd1]*[port] derive per-thread RNG seeds the same way as mcx
 2026-10-21 [0f7df4b] [build] rebuild mcx_utils.o when the embedded kernel mcx_core.cl changes
 2026-10-21 [6b9b06b] [ci] add .gitignore for build, packaging and simulation output files
 2026-09-10 [c9ab15b] [pmcxcl] add aarch64 pmcxcl linux build, bump to 0.7.3
 2026-07-09 [00ce46e] [cmake] fix cmake lzma linking error
 2026-06-14 [fcdd6fd] [bug] null *fluence after free in mcx_clearfluence to avoid double-free on reuse
 2026-06-13 [8c9c3f0]*[bug] opencl: fix NVIDIA GPU memory leak and harden host buffer handling, fix #66
 2026-05-20 [16e9221] [bug] avoid forcing g=1 in continuous medium format, fix #65
 2026-05-20 [2309b5e] [test] skip cuda-memcheck if not installed
 2026-05-20 [55e592d] [test] fix broken tests after zmat 1.0 update
 2026-05-20 [e0b526a]*[feat] port 1x1x1 volume support from mcx to mcxcl previous commits are https://github.com/fangq/mcx/commit/f2d3bc49b62740f822bebd0f345b29c5681b0e57 https://github.com/fangq/mcx/commit/ee5be15d39e6eddb6b3f2f6c3de0b8de7b826909
 2026-05-08 [35c5b95] [mex] update buildmcxcl.m to include new units, suppress string length warning
 2026-05-02 [9ea93f6] [opencl] remove opencl jit warnings
 2026-05-01 [dc0f3e0] [pmcxcl] bump pmcxcl to 0.7.1 to include fix to #61
 2026-05-01 [a66add5] [bug] fix macos opencl runtime error, fix #61
 2026-04-23 [8129dd4] [ci] update windows octave to 10.3
 2026-04-23 [abaf0d8] [ci] set up msys g++
 2026-04-22 [5fb48da] [ci] fix choco mingw installation error
 2026-04-22 [493fe49] [ci] update zmat and disable multi-threading lzma
 2026-04-16 [31b3a6d]*[feat] upgrade zmat to 1.0.0, miniz->3.1.1,lz4->1.10.0
 2026-04-07 [bcd8067]*[feat] complete port of RF forward/adjoint Jacobian from trinity to master bump pmcxcl version to 0.7.0
 2026-04-05 [8f70ff2]*[feat] complete trinity to master backport
 2026-04-05 [8b4a7d5] [build] remove CUDA/trinity targets from master Makefile
 2026-04-05 [0f692be]*[feat] output both forward and jacobian in the adjoint mode
 2026-04-01 [5c2816e]*[feat] port --lang from mcx to mcxcl
 2026-04-01 [00bdfae]*[feat] port RF forward and RF/CW adjoint Jacobian from mcx
 2026-02-20 [239c149] [pmcxcl] bump version to 0.6,support svmc,polarization,RF-replay,4-float media
 2026-02-20 [e6bf718] [bug] fix multisrc bug when using --optlevel 3
 2026-02-20 [9275c9e] [opt] optimize atomic float add on various devices
 2026-02-20 [8233115] [bug] fix rf replay omega failing to pass to kernel bug
 2026-02-19 [232df0d] [demo] add rfreplay demo port from mcx
 2026-02-19 [5756a54]*[feat] port RF replay from mcx to mcxcl, not yet working
 2026-02-18 [ca582b0] [bug] add the missing mcx_mie unit
 2026-02-18 [68f3211]*[feat] port polarization simulation from mcx to mcxcl
 2026-02-18 [4d53ce3]*[feat] port wedge-source and slit source with gaussian broadening from mcx
 2026-02-18 [75f9066] [json] add MaxDetPhoton, BCFlags and MinEnergy in the json parsing
 2026-02-18 [8b05259]*[feat] port mua/mus/g/n 4-float media type asgn_float from mcx to mcxcl
 2026-02-18 [4ff9e20] [bug] fix USE_MCXCL overwrite cfg.gpuid
 2026-02-17 [7c7c6d5]*[feat] port svmc from mcx to mcxcl
 2026-02-16 [979dc1c] [bug] time gates settings should be initialized
 2025-12-31 [59373ba] [ci] remove octave image from mcxcl package
 2025-12-13 [983430e] [ci] fix missing g++-12 on macos-15-intel
 2025-12-10 [3c2cc19] [ci] remove retired macos-13 runner, use macos-15-intel
 2025-10-13 [039fe86] [doc] add additional changelog

== MCX-CL 1.8.0 (Infinity), FangQ <q.fang at neu.edu> ==

 2025-10-06 [24e41f1] [release] update version to v2025.10, codename Infinity
 2025-10-01 [b2a507b] [feat] use USE_MCXCL>0 to set OpenCL device, negative to set CUDA device
 2025-10-01 [6e6d5bd] [pmcxcl] make optlevel=3 default, 30-100% speedup, bump pmcxcl 0.4.0
 2025-10-01 [a4e9f1b] [bug] fix failing multisrc example after fixing -o 4 warnings
 2025-10-01 [f967e86] [bug] fix hyperboloid and slit sources, add demo script
 2025-10-01 [8e61287] [clang] fix additional clang warnings
 2025-10-01 [a396631] [clang] fix all clang warnings on macos
 2025-10-01 [06d2d5e] [opencl] fix ocl compilation warnings
 2025-09-30 [17c9faa] [bug] fix multi-source replay bug, ported from fangq/mcx#250
 2025-09-29 [ff45ab3] [bug] add the missing gcfg constants for -o 4 optimization
 2025-09-26 [f4e0f0d] [doc] update documentation for v2025.9
 2025-09-26 [aa2e389] [memory] release event, did not fix memory leak
 2025-09-20 [c5cc650] [feat] port Russian Roulette, ring src, hyperboloid src from mcx to mcxcl
 2025-09-19 [a9dd9af] [ci] fix upload ci error
 2025-09-19 [3a81111] [ci] restore the removed PATH setting
 2025-09-19 [817e505] [ci] fix octave windows path
 2025-09-19 [db396e8] [bug] fix multi-source bug after porting fangq/mcx#163
 2025-09-19 [afc0db9] [feat] initial port of the multi-source support, fangq/mcx#163
 2025-08-25 [f931612] [pmcxcl] bump version to 0.3.2 to include expanded mcx utils functions
 2025-07-20 [4f1de0e] [ci] use windows-2022 as 2019 has retired
 2025-07-20 [a38255b] [pmcxcl] build for apple silicon
 2025-04-23 [eb39147] [pmcxcl] fix pmcxcl ci build, bump version to 0.3.1
 2025-04-23 [18ea941] [feat] optimize mcxcl for Arm Mali GPU, gain 6x speedup

== MCX-CL 1.6.0 (Harmonic), FangQ <q.fang at neu.edu> ==

 2025-01-23 [e22edad] [doc] update README.md for v2025 updates
 2025-01-23 [2a9476b] [feat] support reading pipe from command line with -f -
 2025-01-22 [febd932] [bug] fix incorrect per-voxel pathlength when mua->0, fangq/mcx#164
 2025-01-21 [3640d79] [bug] fix windows -N error
 2025-01-21 [44f63c0] [cmake] update cmake to add -N support
 2025-01-20 [6de71b0] [neurojson] avoid needing c++11, fix ci
 2025-01-20 [3cb78c4] [ci] fix mac warnings and errors
 2025-01-20 [29b0f3b] [feat] add -N/--net to download simulations from NeuroJSON.io, add -Q
 2024-11-13 [57f22bc] [ci] upgrade mingw on windows for octave 9.2
 2024-11-13 [96b8dbc] [ci] speedup macos-13 and windows octave download
 2024-11-13 [299b920] [ci] add install octave using dmg
 2024-11-13 [f8bb370] [ci] add windows octave mex build back
 2024-09-30 [0f642c3] [pmcxcl] bump pmcxcl version to 0.2.1 to include fix in fangq/mcx#233
 2024-09-29 [42917da] [bug] fix incorrect angleinvcdf and invcdf length, fangq/mcx#233
 2024-09-14 [8b20177] [ci] add back macos-12
 2024-09-14 [f15814c] [ci] revert pybind11 version further for python3.6
 2024-09-14 [d3baf8c] [ci] add ubuntu-24.04 and macos-14
 2024-09-14 [e2fa087] [ci] remove DL_LDFLAGS
 2024-09-14 [dd99f92] [ci] macos ci fails with -shared
 2024-09-14 [7a3e4aa] [ci] test without macos-14
 2024-09-13 [4b9e21b] [bug] fix the potential typo in Custo et al for CSF mua, fangq/mcx#232
 2024-09-11 [c13dcf2] [ci] remove upx as github disabled upx for macos
 2024-09-11 [2191885] [ci] allow make oct to link with OpenCL on macos
 2024-09-03 [7c57318] [ci] fix action alert related to download-artifact https://github.com/NeuroJSON/zmat/security/dependabot/1
 2024-08-20 [8f84acf] [ci] use gcc-12 on macos runner
 2024-08-18 [d7defeb] [bug] fix lzma memory leakage, NeuroJSON/zmat#11, lloyd/easylzma#4
 2024-07-19 [9c86f6b] [bug] fix multi-gpu serialization bug on nvidia GPUs the bug was introduced in https://github.com/fangq/mcxcl/commit/9b4d76f03d86c2c9f3f449e340925649d4514379
 2024-06-12 [953c4e9] [ci] remove compiler warnings
 2024-06-12 [57612d0] [test] make mcxcl pass all tests on Alder lake Intel iGPU
 2024-06-12 [4609451] [bug] detector radius is not squared, fix #58
 2024-06-11 [2b91626] [intel] pass all tests and remove all warnings on old i7-2635QM on mac
 2024-06-11 [59d88a0] [test] sync test script between mcx and mcxcl after #57
 2024-06-11 [88899f9] [bug] reset replay.tof when tof too big, improve replay test, fix #57
 2024-06-09 [6e91fe3] [opencl] optimizing thread number on Apple silicon, gain 7x speedup
 2024-06-09 [c2bbf7f] [ci] test on macos-13
 2024-06-09 [7b558a4] [bug] fix colin27 failure on Apple silicon, fix #49
 2024-06-08 [93c589c] [ci] trying to fix macos-12 build
 2024-06-08 [9e84ecc] [bug] apply the same patch to ensure shared mem reset, fangq/mcx#222
 2024-06-08 [1154916] [bug] fix missing nscat output due to incorrect macro, fix #56
 2024-06-05 [8918150] [bug] add missing --maxjumpdebug flag, accept float, fix #54
 2024-06-04 [4b00f6d] [bug] fix double fclose error, close #53
 2024-04-25 [027cc55] [bug] avoid double-base64-encoding when -Z 2 is used, fangq/mcx#219
 2024-03-29 [cbfa564] [ci] modify DL_LDFLAGS
 2024-03-29 [ac879dc] [ci] revert LDFLAGS changes to compare difference on macos-12
 2024-03-29 [d175187] [ci] print verbose mkoctfile log to debug macos-12
 2024-03-29 [334c882] [package] copy LFLAGS to LDFLAGS, close #50
 2024-03-14 [629ab55] [release] bump pmcxcl to 0.2.0, update README for v2024.2
 2024-03-13 [059a975] [ci] disable upx for macos-14, #48
 2024-03-13 [541b903] [ci] try building mcxcl mex on macos-14 using R2023b
 2024-03-13 [c455fba] [ci] use R2023b for macos-14
 2024-03-13 [858ef22] [ci] skip matlab mex build on macos-14 due to matlab-actions/setup-matlab#100


== MCX-CL 1.2.0 (Genesis), FangQ <q.fang at neu.edu> ==

 2024-03-12 [1fc8286] [ci] building binaries on Apple M1 macos-14 runner
 2024-03-12 [bf89aff] [ci] update nightly build script
 2024-03-08 [4891c72] [ci] remove mcxlabcl gcc warnings
 2024-03-05 [80551a4] [bug] remove duplicated and overwritten cfg initialization
 2024-03-04 [84c64ec] [bug] fix cuda core count for Ada and Blackwell
 2024-03-01 [1e56f5b] [doc] update documentation for v2024.2
 2024-03-01 [d4fb874] [ci] bump pmcxcl to v0.1.6
 2024-03-01 [0d9f77f] [doc] update neurojson website url to https://neurojson.io
 2024-02-29 [580cb27] [format] reformat all MATLAB codes with miss_hit
 2024-02-29 [ce1d374] [bug] fixes to pass tests on Intel CPU, AMD GPU and pthread-AMD
 2024-02-29 [2f70174] [bug] free ginvcdf and gangleinvcdf buffers
 2024-02-29 [9aee8ce] [bug] fix many errors after testing, still need to fix replay
 2024-02-29 [b82c856] [feat] add missing demo scripts
 2024-02-29 [21e1e72]*[feat] port scattering and launch angle invcdf from fangq/mcx#129 fangq/mcx#13
 2024-02-28 [90a28f3] [ci] remove macos-11 as brew fails for octave, Homebrew/brew#16209
 2024-02-28 [fbe270b] [pmcxcl] bump pmcxcl to 0.1.4 after fixing fangq/mcx#212
 2024-02-27 [4e1ec7f] [ci] fix windows cmake zlib error, fix mac libomp error
 2024-02-27 [3d18b78]*[bug] fix critical bug, squaring pattern/pattern3d, fangq/mcx#212
 2023-11-10 [26ec422] [ci] install mingw 8.1 for matlab mex build, matlab-actions/setup-matlab#75
 2023-11-10 [5a96d02] [ci] set MW_MINGW64_LOC to octave bunded mingw, matlab-actions/setup-matlab#75
 2023-10-31 [337c51c] [bug] apply fangq/mcx#195 fix to avoid dref accuracy loss
 2023-10-29 [3b01475] further simplify bc handling, #47
 2023-10-29 [f816140] latest matlab fails to respect MW_MINGW64_LOC on windows, use R2022a
 2023-10-29 [adc0316] simplify boundary condition handling, fix #47
 2023-10-07 [04a7155] bump pmcxcl to 0.1.3
 2023-10-07 [e930448] remove opencl jit warnings, adjust optlevel order
 2023-10-07 [1a30e5c] update copyright dates
 2023-10-07 [dcdb117] fix unitinmm double-scaling bug, close #46, close #45
 2023-10-03 [fa8dbb2] fix bc mcxlab/pmcxcl memory error,fangq/mcx#191,fangq/mcx#192
 2023-09-29 [aa5da8c] fix -F flag overwrite bug
 2023-09-26 [507b37b] fix continuous media scaling issue,pmcxcl 0.1.2, fangq/mcx#185
 2023-09-26 [378f4eb] fix group load balancing for --optlevel 4
 2023-09-24 [07bc297] additional patch to handle half-formatted cont. media

== MCX-CL 1.0.0 (Fractal), FangQ <q.fang at neu.edu> ==

 2023-09-24 [3e79262] add 2d test, fix test error on macos-12
 2023-09-24 [c0dc765] support muamus_float, labelplus and muamus_half formats, fix mcxlabcl demo
 2023-09-23 [70853cc] update mcxlabcl demo scripts
 2023-09-16 [cebba31] update deploy script after reformat
 2023-09-15 [8a51281] update documentation
 2023-09-13 [c51a252] avoid error on old windows sdk
 2023-09-13 [0722c09] support ASCII escape code in Windows terminals
 2023-09-10 [97eca8e] apply upx compression, static libgcc for oct
 2023-09-08 [4f4b159] add NO_IMPLICIT_LINK_TO_MATLAB_LIBRARIES for cmake 3.24+
 2023-09-01 [0403ec4] allow oct to build on octave 7.x
 2023-08-30 [fefaf1b] add jnii header
 2023-08-29 [cd65fae] fix pmcxcl warning
 2023-08-29 [d4a831c] update buildmcxcl.m script
 2023-08-28 [b4b6f56] remove openmp from dependencies
 2023-08-27 [080855a] fix gpu hanging bug, import utils from pmcx, v0.0.12
 2023-08-27 [e342756] port negative pattern support from mcx
 2023-08-27 [7a7b456] update debuglevel=R for RNG testing
 2023-08-27 [11c5047] migrate to jnii/jdat format,add more cont. media, fix pmcx
 2023-08-25 [b8095a8] add mcxlab('version'), use MCX_VERSION macro, update msg
 2023-08-23 [103e865] enable static linking on windows
 2023-08-16 [936d332] revert to octave 5.2 for windows build
 2023-08-15 [9dbc7f3] build windows mex files for octave 8.2
 2023-08-04 [9b4d76f] fix boundary condition handling, port from mcx
 2023-08-04 [7ee85d4] fix build warnings, use large file support with miniz
 2023-07-30 [3887625] update README
 2023-07-30 [9c98ca7] bump pmcxcl to 0.0.9
 2023-07-30 [50940de] update zmatlib to 0.9.9, use miniz, drop zlib
 2023-07-30 [50f5ea2] revert back to gcc with Ninja generator for pmcxcl
 2023-07-30 [370128a] support compileropt and kernelfile in mcxlab/pmcxcl, fix omp
 2023-07-30 [8d34e3d] test clheader target on windows
 2023-07-30 [7194199] remove pmcxcl.cpp warnings, fix gpuinfo output
 2023-07-30 [5547f2d] fix gpu listing bug
 2023-07-30 [1b28a6d] fix windows gomp multiple linking bug
 2023-07-30 [7b37d18] rebuild linux and mac python modules
 2023-07-29 [a215db7] statically link libraries in pmcxcl on windows
 2023-07-29 [4916939] automatically build and upload Python module via github action
 2023-07-28 [09c61b7] bump pmcxcl version, fix windows pypi version check
 2023-07-25 [4b5606e] port python module action scripts from mcx
 2023-07-25*[f92425e] add initial draft of pmcxcl for Python, add cmake
 2023-07-25 [3c2c735] update missing output structs
 2023-07-23 [87f3c0e] allow early termination if -d 3 or cfg.issavedet=3 is set
 2023-07-23 [c8ccc04] support outputtype=length/l for saving total path lengths per voxel
 2023-07-23 [57c3b9b] fix incorrect comment regarding gaussian src, fangq/mcx#165
 2023-07-23 [7d5bd16] update mcxplotphoton to mcx
 2023-07-23 [1cafd3e] allow to get fluence in non-absorbing medium, fangq/mcx#174
 2023-07-23 [8dbc397] update neurojson repo paths
 2023-07-23 [0d780bd] support trajectory only output with debuglevel=T
 2023-07-23 [e4ade36] fix replay test result matching
 2023-07-03 [b57b157] fix macos error
 2023-07-02 [99a4486] port zmat ci changes to mcxcl
 2023-06-03*[980cc9f] enable doxygen documentation via make doc
 2023-05-17 [a25f302] allow device query to handle open-source AMD ocl runtime, fix #44
 2023-03-12*[c9697a9] update action from mmc to mcxcl
 2023-03-12 [11938a3] copy mmc's merged action script
 2023-03-07 [ee7e940] add github action
 2022-10-08 [ae7f6e3] update version to 1.0
 2022-10-03 [695d2f3] run test on all platforms
 2022-10-03 [85beae7] revert debugging information, fix cyclic bc for mac
 2022-10-02 [53ec9e7] attempt to fix cyclic bc
 2022-10-02 [263abb2] test cyclic bc
 2022-10-02 [6c588fa] debug cyclic bc
 2022-10-02 [fc481ba] debug cyclic test on the mac
 2022-10-02 [8bdc33e] disable zmat and file IO functions in mex/oct targets
 2022-10-02 [c6e280a] fix CI error after using voxel index dda
 2022-10-01 [24bf948] allow disabling PTX based f32 atomicadd
 2022-10-01*[2277f7f] using nvidia native atomicadd for float add 30% speedup
 2022-09-29 [f0d0bad] update skipvoid
 2022-09-29 [b3d94d2] update to match mcx flipdir use
 2022-09-23*[1931489] adopt voxel-index based dda, like fangq/mcx b873f90c6
 2022-09-21 [d9e5eaa] add jammy to ci
 2022-09-21*[3e71eac] making double-buffer finally work to solve fangq/mcx#41, thanks to @ShijieYan
 2022-09-21 [2216686] sync mcxcl's json2mcx with the latest version from mcx
 2022-05-21*[39913fc] complete reformat of source code using astyle with 'make pretty'
 2022-05-21 [f7d69d5] sync mcx2json from mcx repo
 2022-01-27 [2559135] sync mcxdetphoton.m with mcx, move location
 2021-10-29 [867314a] Update README.md
 2021-06-23 [818f3a1] set maximum characters to read for fscanf, fix #41
 2021-06-23 [38d56a6] handle empty detector array in json2mcx
 2021-05-26 [4c18305] fix a few minor memory leaks based on valgrind output, still leaks on nvidia GPUs
 2021-05-15 [bbee39e] save volume in jdata format by default
 2021-02-26 [8eba2cd] add MATLAB_MEX_FILE in the makefile
 2021-02-24 [8f793a0] use memcpy to avoid strncpy warning from gcc 10
 2021-02-24 [89b46a9] update windows compilation commands
 2021-02-24 [49c6217] allow compiling GNU Octave mex on windows
 2021-02-07 [e9d2ce7] following Debian script suffix rule
 2020-09-06 [a39f271] update numeral version number
 2020-09-06 [6ea10b2] add back wiki versions of the README file for easy website update
 2020-09-04 [de59205] patch mcxcl for fangq/mcx#103 and fangq/mcx#104
 2020-09-01 [9b5431e] sync with mcx, add cubesph60b to match example/benchmark2
 2020-08-31 [7e7eb06] flush output for mcxlabcl
 2020-08-31 [6079b17] fix pattern3d demo script bug
 2020-08-31 [7b36ee8] fix photon sharing mcxlab crash
 2020-08-30 [f498e29] fix typo
 2020-08-29 [b001786] update mcxlabcl, update ChangeLog

== MCX-CL 0.9.9 (Eternity) branch, FangQ <q.fang at neu.edu> ==

 2020-08-28 [2ef3ee7] sync mcxlabcl with mcxlab
 2020-08-28 [89df0be] patch mcxcl for fangq/mcx#101
 2020-08-24 [9306ba3] massive documentation update for v0.9.8 release
 2020-08-18 [e76d67f] add automated valgrind testing
 2020-08-18 [dcbf360] add pocl for ubuntu 18.04
 2020-08-18 [acc6783] update ubuntu 20.04 pocl package name
 2020-08-18 [6db02a4] add ubuntu 20.04 target with pocl and testing
 2020-08-17 [9c90d06] fix typo
 2020-08-17 [4e95e18] add -O3 for zmat units
 2020-08-17 [265ef1f] remove type casting warning on the mac
 2020-08-17 [670f783] add back the accidentally removed MATLAB_MEX_FILE flag
 2020-08-17 [0bf5063] finetune valgrind and cuda-memcheck test
 2020-08-17 [3973557] bind -j to --json, add help info, update examples
 2020-08-17 [2a5a54e] add valgrind and cuda-memcheck test
 2020-08-17 [656815d] fix regression introduced in @80861754 in handling --shapes
 2020-08-16*[acb8280] allow testing script to work on mac
 2020-08-16 [c752642] return total and absorbed energy when -S 0 and -U 0 is used
 2020-08-16 [e872b58] add sphshell benchmark - see GPU MMC paper
 2020-08-16*[64cf701] sync bc detector support via --bc 7-12 chars,disable group load balance
 2020-08-15 [9997a28] remove warnings from gcc 9.3
 2020-08-15*[3b3f224] add --json option, sync with mcx
 2020-08-15*[d893be3] sync with mcxcontest.pl in mcx
 2020-08-12 [8c96656] fix incorrect srcparam brackets
 2020-08-12 [dbc12eb] add group load balance into default option
 2020-08-12 [6ba4d97] use run-time compilation macro to replace const mem, gain 16% speedup
 2020-08-08 [761dcbc] handle record-breaking benchmark results
 2020-08-08 [12f7961] fix nvidia gpu core count, sync from mcx
 2020-08-08 [e6873a9] fix do_reflect macro testing
 2020-08-08 [4e3deda] speedup updateproperty via using macros
 2020-08-08*[c1e3ebb] merge with nvidiaomp branch, support multi NVIDIA GPUs
 2020-08-05 [a024fa4] add -L and save workload
 2020-08-05 [60622d6] update help info
 2020-08-04 [1c431bb] fix -n/G/W flags
 2020-08-04 [34ed2a5] sync with mcx script
 2020-08-04*[d0a73cf] fix double scaling for pattern/pattern3d source, like fangq/mcx@c04bff5
 2020-08-03 [fd0e0ec] debug on the mac
 2020-08-03 [7d85545] switch json to JSON::PP in the core
 2020-08-03*[3c110b2] standalone mcxcl benchmark and speed contest script
 2020-07-28 [34ab8cb] fix 0 global memory on AMD GPUs, regression of 67576f6, #40
 2020-07-25 [967e9e6] enable testing on mac
 2020-07-25 [3f41350] testmcx.sh accepts additional param
 2020-07-25 [23dc45a] linux target add pocl
 2020-07-24 [b8b6a24] build mcxlabcl octave mex on linux targets
 2020-07-24 [1c61c8d] add msys shell for travis
 2020-07-24 [ab6155f] try to use mingw32-make
 2020-07-22*[c838d58] add travis ci script
 2020-07-22 [36e0e9e] match test script symbols
 2020-07-22 [cb3f3ac] remove --verbose, set to --version to match mcx
 2020-07-05 [2e52966] fix nightly build issues
 2020-06-27 [21bebc6] fix all ubj warnings
 2020-05-03 [4b59557] add the missing header file, finish #37
 2020-05-03*[d2501dc] sync with mcx to support JData/JNIfTI output and --bench, close #37
 2020-04-06 [da59c72] remove mingw64 compilation warnings
 2020-04-05 [39a8341] update help info for buildmcxcl.m
 2020-04-05 [1903818] make creating octave mex file work again
 2020-04-04 [7ac3b56] use the correct macro on windows
 2020-04-04 [7911b02] fix cygwin binary library entry point error
 2020-04-04 [199f708] simplify makefile
 2020-04-03 [388e1a1] use default msys2 root folder
 2020-04-03 [c7f0eda] update help info, flush output
 2020-04-03 [ee807d9] flush output in octave, fix error in octave mex
 2020-04-03 [3d768fa] fix compilation on linux
 2020-04-03 [f989f37] compile both binary and mex on windows
 2020-04-03 [7d3bc69] update makefile to compile on msys2
 2020-04-03 [67576f6] fix warnings for gcc 8 and 9.3, compiles windows mex file
 2020-04-02 [e5f2881] migrate windows compilation to msys2
 2020-03-29 [f1fcd01] sync with mmc to stay compatible with MS VS
 2020-03-20 [e855627] define a background grid if dim.x/y/z is defined
 2020-02-05 [5868f95] fix one warning of the cl kernel
 2020-02-05 [1388f7d] remove all warnings from gcc 7
 2020-02-05 [2a2116a] update cjson to the latest git version
 2019-11-21 [ff9e097] Updated and renamed readme.txt to readme.md
 2019-10-18 [10cac7b] fixing optical property initialization for continuously varying mua; add missing input file for digimouse demo
 2019-08-03 [96eaba7] apple cpu special config
 2019-08-02 [a54cb6e] fix missing dosaveref field, swap incorrect short flag
 2019-08-02 [9186f25] test to see if progress bar is supported
 2019-08-01 [01efe5e] enable reflection when bc contains r/m/c/_
 2019-08-01 [22e84b4] deal with device names without vendor, like Titan V
 2019-08-01 [ee67942] use kernel event to terminate progress bar, set workgroup size to 1 on Mac
 2019-07-31 [61eb317] use finer progress bar on cpu hosts
 2019-07-30 [a432ee0] fix typo to enable a set of new flags
 2019-07-29*[93b3d0c] fix voxel [0 0 0] is always zero bug, same as https://github.com/fangq/mcx/commit/63e5e2360b8cce35dfba4f8f3f2591c0bc4513bc
 2019-07-26 [40f79d9] linking with cuda opencl.lib on windows
 2019-07-26 [eedf008] do not print progress bar by default, still causing hanging on certain gpu
 2019-07-26 [881ae8c] fix JIT errors on the mac
 2019-07-25 [4b3a58f] make kernel compatible with older opencl libraries
 2019-07-25 [7f61afd] sync mcxlab with mcxlabcl
 2019-07-25 [e523747] set printing progress as default
 2019-07-25 [fa246b4] fix two GPU progress bar error
 2019-07-25 [c8b8b24] fix cyclic boundary condition
 2019-07-24*[898c1f3] fix sharing demo
 2019-07-24 [7fc5669] update output deposit and print info. for sharing
 2019-07-24 [071e1a4] fix wrong pattern number index for single pattern illumination
 2019-07-24 [b64a562] match anistropy change to that of mcx
 2019-07-24 [2001c19] fix fluence/energy output deposit and add one register pathlen to accumulate photon partial pathlengths that fall in the same voxel
 2019-07-22 [e87220d] partial sync with mcx_utils.c from mcx-cuda
 2019-07-22 [0e6f8a9] fixing compatibility issues when running mcxlab srctype tests
 2019-07-22 [9fac24d] port mcx replay patch
 2019-07-22*[2894ea1] progress bar finally works on NVIDIA, thanks to Robert Crovella@NVIDIA http://bit.ly/2XY0IVb
 2019-07-22 [2863ae3] partially fix some compatability issues to run mcxlab samples
 2019-07-21*[f242201] add replay support
 2019-07-19 [53bcd77] use float byte alignment
 2019-07-19 [136f3bf] align local memory buffer to 8-byte-alignment to avoid CL_INVALID_COMMAND_QUEUE error
 2019-07-19 [c0d0c9a] use cl_ulong to define 64bit integers
 2019-07-19*[fbfe876] add -m -q and -V options, but shared mem is not working
 2019-07-17*[490c215] now mcxcl can save trajectories
 2019-07-17 [2257db0] ported --gscatter option
 2019-07-17*[53cb0e7] massive update - ported bc, multibyte and savedetflag, 2d to from mcx to mcxcl
 2019-07-17 [ff58c0c] fix type-punning warning
 2019-07-17 [412f801] partially sync with mcx
 2019-07-16*[969907e] add colin27 example from mcx
 2019-07-16 [fc6ff40] sync with mcx's helper functions
 2019-06-08 [d5cac7d] fix excess buffer release and add missing one
 2019-05-31 [0fe7813] remove un-needed -k parameter from samples
 2019-03-20 [a6d38d4] fix empty string test

== MCX-CL 0.9 (Eternity - beta) branch, FangQ <q.fang at neu.edu> ==

 2019-03-16 [1ce5240] update installation guide
 2019-03-13 [7d6c192] update documentation for internalsrc flag
 2019-03-13 [80db60f] print gpuinfo inside matlab
 2019-03-13 [5465b99] support internalsrc flag in mcxlabcl
 2019-03-13 [50485bd] remove skipvoid when the source is inside, improve AMD GPU speed by 2-3x
 2019-03-13 [4853da3] avoid crashing matlab when mixing devices from different platforms
 2019-03-12 [c0e8da7] set default optlevel to 1
 2019-03-05 [079604d] demote the optimization level to 1
 2019-03-05 [35d5797] fix compilation error on amdgpu-pro drivers 16.60
 2019-03-04 [8f78960] fix runtime calculation in mcxlabcl
 2019-03-03 [f748e74] add color to the command line output
 2019-03-02 [3cc2b49] fix bugs for isotropic source, cone source, add gpubenchmark script
 2019-03-02 [d784bc6] avoid gcc warning,test xxd utility and add vim-common dependency
 2019-03-02 [7450c87] add all mcx matlab functions, update mcxlabcl help, fix mcxlabcl compilation bug
 2019-03-01 [8c3f16b] fix bug to read srcparam from json
 2019-03-01 [6e916cb] sync mcxcl with mcx 2019.2
 2019-02-28 [3c6f928] sync mcx updates, add colin27, digimouse and usc19-5 examples
 2019-01-29 [9652224] fix dimtype definition; copy from a fix made in mmclab
 2019-01-27 [75a258f] change lib path to link with cuda
 2019-01-18 [60aab29] fix mmclab crash due to racing in multi-thread, similar to mcx issue #60
 2018-11-21 [5a3d058] fix skinvessel json input file
 2018-11-21 [bd9db4c] update the launch position in skinvessel benchmark
 2018-11-14 [aed9038] add benchmark from mcxyz skinvessel example
 2018-11-13 [0f3611c] test if gpuid is 0 to avoid mcxlab crashing
 2018-09-27 [0d7e54b] give a warning and avoid crash for unsupported debug flags, fix #46
 2018-09-15 [2567fd3] Merge branch 'master' of https://github.com/fangq/mcxcl
 2018-09-15 [51e8c97] launchphoton supports half precision
 2018-09-01 [d316023] add nightly build script for mcxcl

== MCX-CL 0.8 (Duality) beta branch, FangQ <q.fang at neu.edu> ==

 2018-08-18 [6ca494c] avoid static linking libm to work with gcc 5.4
 2018-08-16*[939ee95] fix floating point accummulation error, port from mcx #41
 2018-03-29 [966455f] changes to compile mcxcl.mex using mingw64 g++ on Windows
 2018-03-25 [5a1b812] port saveref from mcx to save diffuse reflectance
 2018-03-24 [ed508fa] port mcx saveexit flag to mcxcl
 2018-03-24 [e08f2f7] support nii output format
 2018-03-23*[2111a47] accept full json input in the command line
 2018-03-22 [57defd5] fix detection bug, use --debug, read focal len, update help info
 2018-03-20 [24bf3b3] update makefile for windows
 2018-03-19 [be5ebba] use non-blocking buffer mapping,remove get_local_size
 2018-03-18*[ad29b2a] port progress bar from mcx, but not yet working
 2018-03-18 [85d6d5c] compile mcxlabcl on linux and mac
 2018-03-17*[9ad1ad5] unify mcxlab and mcxlabcl
 2018-03-17 [fc59b7d] initial port of mcxlab to mcxcl - mcxlabcl for matlab and octave
 2018-02-22 [9e62ac3] separate compilation for amd and nvidia
 2018-02-16 [5b73ba6] fix crash for widefield source, fix bug for initial scattering
 2018-02-13*[8a53b17] initial port of complex source support from mcx, skipvoid gives segfault if source is outside, need debug
 2018-02-08*[88d9d4b] define default cl program
 2018-01-29 [d7a1a2f] add optlevel, update main reference
 2017-11-22 [68a1557] accept -G integer to specify GPU, like mcx
 2017-11-22 [ba0e780] fix nextafter for half, add nextafter test kernel
 2017-11-19*[0c11f79] add half precision raytracer, support AMD Vega
 2017-10-30 [a031aae] incorporate Leiming's workgroup load-balancing,simulate exact photon number
 2017-10-28 [5fbf6cf] use 2560 items per sm based on Leiming's test
 2017-10-28 [a188f8e] hand tune AMD autothread number
 2017-10-26 [f3a53f4] add MCX_SIMPLIFY_BRANCH flag to reduce thread divergence
 2017-10-25 [86956ce] avoid overloading major and minor flags for AMD device, use vendor tag
 2017-10-22 [2f23726] set autothread on Intel GPU
 2017-10-22 [bf8fec4] tune persistent mode on Intel GPU,remove warning
 2017-10-09*[c030366] absorb all variations in the paper in one version, switch by flags
 2017-08-03*[8b237f4] mcxcl doc update
 2017-08-03 [6e52e32] compile mcxcl on windows, remove mcxstudio
 2017-07-30 [8fc3698] ported some of the latest features from mcx - integer media,savenii,mcxstudio flags
 2017-01-26 [aef375d] Revert "optimize photon workload at work-group level"
 2016-08-27 [135dc82] change clWaitForEvents to clFinish to avoid hanging
 2016-08-24 [0e3865b] update core count for GP104
 2016-08-23 [d76f626] support autopilot on AMD devices
 2016-08-22 [c28fe99] fix core counts for Pascal
 2016-08-22 [6c1cdc1] add speed benchmark
 2016-08-22 [6b0fffa] port JSON input support from MCX to MCXCL
 2016-08-19 [188c5d5] add autopilot mode, determine SM count using nvidia CL extension
 2016-08-16 [0d7bece] set xorshift128+ RNG as default
 2016-03-21 [1a49986] enable posix erand48 with cl_khr_fp64 extension
 2016-03-15 [133b242] make mcxcl run on Intel HD graphics
 2016-02-15 [5370ef0] port major mcx updates to mcxcl - hitgrid, normalization, detection, reflection handling etc
 2014-10-03 [d732ce9] fix critical bugs found in MCX 0.9.7-2 or earlier releases
