2024-03-14 [58aa18c] [ci] fix macos-14 test under make omp 2024-03-14 [739dbbe] [bug] only enable Plucker ray tracer if gpuid=-1 2024-03-13 [a751e79] [bug] still report total energy when issave2pt is 0 2024-03-13 [2166cc9] [ci] make mexopts file compatible with arm64 mac 2024-03-13 [ef6891c] [ci] use omp only on macos-14 as M1 does not have SSE 2024-03-13 [da6d04e] [feat] store pattern pixel index for each photon in photon sharing 2024-03-10 [237713b] [test] further testing of buit-in immc benchmarks 2024-03-09 [c4a7c91] [format] complete reformat all matlab scripts with miss_hit 2024-03-09 [674044f] [feat] add edgeimmc, nodeimmc, faceimmc benchmarks, update mmc2json 2024-03-09 [e86cd34] [feat] upgrade ubj library to the latest version 2024-03-09 [0dce38e] [bug] remove errors and warnings on Intel and AMD GPUs 2024-03-09 [efc4101] [feat] test zipped mesh in json, migrate from float3 to FLOAT3, add benchmark 2024-03-09 [cc3f362] [feat] accept MeshROI for immc in the JSON input 2024-03-08 [dd9b4d5] [bug] fix CPU host fails to save trajectory, fix GPU traj duplicate use omp atomic instead of critical in savedebugdata 2024-03-08 [b0f9cfe] [ci] fix ci error on macos 2024-03-08 [242ce05] [feat] use self-contained json input including mesh data 2024-03-07 [10edc27] [bug] fix incorrect condition to postprocess traj data 2024-03-07 [2d4e355] [doc] update documentation for v2024.2 2024-03-07 [ebefe98] [feat] return trajectories data if -D M or cfg.debuglevel contains M 2024-03-05 [10ea5ea] [bug] search 1st and 2nd nearest neighbors for edge-immc to reduce artifact
2023-09-17 [6569f48] add comments to nightly build script for deployment 2023-09-16 [c242cf7] update deploy script after reformat 2023-09-13 [d3f25c6] avoid error on old windows sdk 2023-09-13 [8a59cf0] support ASCII escape code in Windows terminals 2023-09-12 [29480d5] only build main function in mmclab for apple 2023-09-12 [86d5658] get around macos make oct error 2023-09-12 [2bada1e] remove some warnings 2023-09-12 [130570b] remove all file IO functions from mex and oct files 2023-09-11 [4ca899f] remove liboctinterp-11, the output is only compatible to octave 8 2023-09-10 [eb14b10] add fopenmp back for mex 2023-09-10 [e20d718] leave out libgomp 2023-09-10 [ee11269] try to statically link libpthread 2023-09-10 [a42553b] fix build error 2023-09-10 [75240d5] use upx compression 2023-09-10 [7264068] clean make oct output before make mex 2023-09-10 [06bcb39] test win matlab mex build 2023-09-10 [dc5ad09] debug windows matlab mex 2023-09-10 [fe21a6b] fix typo, add dll to package 2023-09-10 [a902077] test windows matlab build 2023-09-10 [c25420d] use octave 8 bundled gcc 2023-09-10 [a5203e5] try octave 8.3 for windows build 2023-09-10 [bb1aada] remove matlab gui waitbar, update README and docs 2023-09-09 [13f3760] compute Reff for every medium for normalization 2023-09-09 [1758504] fix gcc error on gcc 4.8 2023-09-09 [7426c8d] guard CMP0074 cmake policy with version 2023-09-08 [1455fbb] enable static linking with gcc with cmake 2023-09-08 [4829e35] fix mex file missing symbol error, thanks to @ShijieYan 2023-09-08 [03e36cd] support building cuda/trinity mex file 2023-09-08 [d38e7e5] add missing zmat cmake file, add mmc-trinity cuda support in cmake 2023-09-08 [74a3035] add the cmake file that was forgot to add 2023-09-08 [1f2ef63] fix incorrect unit in the figure title 2023-09-04 [6e41cfe] fix normalization bug on the exterior surface, close #82 2023-09-03 [20e4dd8] reformat comments in mmc.c with doxygen 2023-09-03 [260e6c0] update documentation 2023-09-01 [a453381] -ffile-prefix-map is only supported in gcc-8 see https://github.com/pandas-dev/pandas/issues/40997 2023-09-01 [b80e801] add apt source to install gcc-7 2023-09-01 [397b7d6] use gcc-7 to build mmc on Linux 2023-09-01 [fe125ad] renormalize dir vector after each scattering, suggested by @ShijieYan 2023-08-31 [f4fc140] update v2023 code name 2023-08-31 [1da18ff] comparing r.eid with signed integer constant, fix #77 2023-08-31 [bfcde02] add the missing maxdetphoton input field in the help info 2023-08-30 [ce80a04] update mmc2json 2023-08-30 [e6f6075] fix progress bar printing issue after makefile update 2023-08-30 [289781f] update documentation 2023-08-30 [bb187a4] allow nightly build on macos 2023-08-29 [7949825] fix ci error again 2023-08-29 [11b1c33] update zmatlib, replace zlib by miniz, update cmake, update version 2023-05-19 [01ed20b] remove ubuntu-18.04 from github action 2023-05-18 [aac1f65] remove macos-10.15 as github retires it, upgrade gcc on the mac 2023-03-27 [c84a303] make mmcraytrace able to handle surface input 2023-03-14 [4162880] fix macos error 2023-03-14 [cc126b6] try static as much as possible to link oct mex 2023-03-14 [0472818] add -static to oct mex 2023-03-14 [07438c6] try -static on octave based mmclab 2023-03-14 [64f8503] add path to libz 2023-03-14 [9d6509e] add libz.a path 2023-03-14 [b1b1e6e] use LDFLAGS 2023-03-14 [4c6f392] link libzmat 2023-03-14 [2e3894b] finally found the culprit in the Makefile, matlab-actions/setup-matlab#60 2023-03-14 [1394602] put env at the end, tlab-actions/setup-matlab#60 2023-03-14 [8ef68b2] use env to set MW_MINGW64_LOC, matlab-actions/setup-matlab#60 2023-03-14 [03274d7] add more include paths 2023-03-14 [d760692] revert back to the link mingw gcc to msys 2023-03-13 [0890cea] change msys2 package name 2023-03-13 [e55ab10] use ucrt gcc 2023-03-13 [2e961cf] install msys2 gcc 2023-03-13 [ee7b8ef] add library link 2023-03-13 [db99b15] create links 2023-03-13 [70acd74] hacking msys2 env variable not inherient issue 2023-03-13 [7780543] forcing MW_MINGW64_LOC 2023-03-13 [9248b65] try another way to define MW_MINGW64_LOC,matlab-actions/setup-matlab#60 2023-03-13 [9122715] define MW_MINGW64_LOC with pwsh syntax, matlab-actions/setup-matlab#60 2023-03-13 [0ae6352] define MW_MINGW64_LOC to make mexopts work, matlab-actions/setup-matlab#60 2023-03-13 [60d5331] debug mex compilation issue on windows, matlab-actions/setup-matlab#60 2023-03-13 [afa6f89] debug mex file on windows 2023-03-13 [b76de50] build matlab mex on windows 2023-03-13 [5458312] revert to setup-matlab@v1 2023-03-12 [aedc145] use objdump for windows to list dlls 2023-03-12 [8d6fb98] try ldd on windows again 2023-03-12 [18ad85f] disable windows setup-matlab again, matlab-actions/setup-matlab#60 2023-03-12 [c23aecc] make macos octave path more robust 2023-03-12 [a9c7cdd] use mexopt for gcc on mac 2023-03-12 [13119d5] test gcc on mac again 2023-03-12 [f1cc618] remove gcc library 2023-03-12 [f91638e] fix yaml error 2023-03-12 [0f49ccb] exclude windows for matlab build 2023-03-12 [9026ac6] add libomp header path 2023-03-12 [654ab24] set CC to clang 2023-03-11 [aaa10d7] print PATH on mac 2023-03-11 [41c58c3] let's locate and link gcc to cc 2023-03-11 [37ad5e4] add libomp for mac 2023-03-11 [b7a60b7] use gcc-10 on macOS for matlab mex 2023-03-11 [22dcb61] force mac mex to use gcc 2023-03-11 [f1bca2c] setup matlab R2020a is too slow 2023-03-11 [6eb2c1d] use setup-matlab@v2-beta 2023-03-11 [3a6719a] debug mmclab merging 2023-03-11 [780f84f] build matlab mex 2023-03-11 [9502ce1] test matlab setup 2023-03-11 [4afd98e] try links 2023-03-11 [073184c] avoid unzipping warning 2023-03-11 [1faa998] use computer arch tag for octave 2023-03-11 [4d04f44] add mmc.mex to arch specific folder 2023-03-11 [7afb2c3] move PKG_ADD to the mmclab folder 2023-03-11 [1df52df] try another way to zip mmc package 2023-03-11 [4cded48] create all-in-one octave package 2023-03-11 [1674054] remove tabs 2023-03-11 [c8ddacd] merge all actions 2023-03-11 [6c8573f] prepare to merge all 2023-03-11 [d27776c] fix windows zip missing error 2023-03-11 [ed784d5] remove tab 2023-03-11 [720b781] use switch to Linux runner to upload to server 2023-03-04 [465ef20] implement github ci 2023-01-03 [3ddff2b] force flushing in terminal and matlab 2023-01-02 [849d09a] bump up version number 2023-01-02 [423047b] fix travis error after adding cuda related targets 2022-11-02 [9809be0] add cudamex and cudaoct makefile targets 2022-10-25 [f455d1e] reduce photon leakage for edge-immc, still leaks, need more work
2022-10-08 [4c8bdae] mmc v2022.10 2022-10-01 [77411c4] using nvidia native atomicadd for float add 40% speedup 2022-09-21 [e661011] add double-buffer to solve fangq/mcx#41 2022-05-30 [c3b15b2] print detected photon number in matlab 2022-05-21 [2ea4414] disable astyle close-templates to allow gcc 4.9 to compile 2022-05-20 [d4eb92d] complete reformat of source code using astyle with 'make pretty' 2022-03-09 [f1df4bd] fix make omp linker error 2022-02-24 [658943b] move bc flags to opencl only 2021-10-24 [869c58e] fix #73, port mirror BC and absorption bc on exterior surface to GPU 2021-08-22 [2ed3213] update r->inroi only when doinit is false 2021-08-22 [33eb98a] manually patching PR #68 by Yaoshen because immc was broken 2021-06-18 [a31a85b] force output data format for both GPU and CPU 2021-06-07 [f15d137] explicitly casting variable to allow JIT compiler to work on certain drivers 2021-03-26 [929775e] update vessel demo script by Yaoshen to use the latest interface 2021-03-26 [c6ae4d7] fix vessel example photon leaking bug 2021-03-14 [c0537cc] support immc in the command line mode 2021-03-14 [c92be73] slightly optimize doinit flow 2021-03-14 [0b58920] remove init_face_inout, perform initial roi inclusion test for all roi types 2021-03-14 [c710105] search for all first-level neighbor faceroi, no need to manually set 2021-03-14 [fd3de3a] wrap implicit mmc to a reusable function,cut register use by 75% 2021-03-14 [d6b9966] fix f-immc stray voxel bug, remove fast_exp9, in DMMC, Lmove can be big 2021-03-13 [688f697] get rid of r->u and r->E to reduce register use 2021-03-13 [b667b82] rename isedgeroi to roitype 2021-03-13 [3c36f32] fix incorrect asborption fraction in immc demo 2021-03-13 [d675737] remove insideroi variable, because it should not change the current prop 2021-03-12 [49df21b] updating inroi and isedgeroi 2021-03-12 [c1795ed] more simplification to the overly complex immc new codes, not yet working 2021-03-12 [3087117] much simplified e-immc testing 2021-03-10 [e4fc100] trying to simplify the immc flow, not working yet 2021-03-09 [3057a0e] update the help info on faceroi face orders 2021-03-09 [2e18153] fixing f-immc demo bug, thanks Yaoshen 2021-03-05 [b14347c] immc example runs, but fimmc result is incorrect 2021-03-05 [9ac29ec] fix two bugs, now e-immc and n-immc demo works fine 2021-03-04 [087df42] revamping immc code 2021-03-03 [0be4a0f] make demo_immc_vesel a function to run in matlab2010 2021-03-03 [1e93a4f] fix n-immc bug, make demo_immc_basic.m example work 2021-03-03 [948bb9f] update documentation for v2021.2 release 2021-03-02 [735c9ee] fix typo in output variable name 2021-03-02 [2218ee4] replace 3 separate steps by a single s2m call 2021-03-02 [46183d8] remove unnecessarily duplicated functions, use iso2mesh functions
2021-02-26 [f2f7221] add MATLAB_MEX_FILE in the makefile for octave mex 2021-02-25 [baa74bb] add c++builder project file 2021-02-24 [0b83b57] fix mmclab error when running multiple GPU simulations, thanks to Dr.Konrad Schumacher 2021-02-24 [9168232] add photon sharing support in branchless-badoul ray-tracer 2021-02-24 [9ba1362] fix errors and warnings on mac os 2021-02-24 [54db37c] update nightly build script 2021-02-08 [1e09902] fix the energy leak for n-immc 2021-01-17 [db86323] Remove immc.mat 2021-01-17 [831e792] Working vessel demo 2021-01-13 [df1251a] allow SSE mmclab to output photon seeds 2021-01-10 [2e510b1] update tend to ensure that tend - tstart is multiple of tstep 2021-01-07 [3265f58] Update immc demo 2021-01-06 [9bc35fc] Add n-immc demo and data 2020-12-28*[05c5293] Add e-immc demo 2020-12-21 [47bab21] Running iMMC code 2020-12-17 [21b5b3f] Completion of ray-tracer 2020-12-14*[f07710c] Add main portion in ray-tracer 2020-12-14 [f90420e] Add compute-distance functions for iMMC 2020-12-07 [834851c] Add cfg for iMMC 2020-10-25 [1e915a6] replaydet=-1 is only supported in mcxlab, not in mmclab, remove 2020-10-08 [2bc0237] enable photon detection inside elements next to zero-labeled element 2020-10-07 [62e972b] fix the judgement condition of photon detection: distance^2 < radius -> distance^2 < radius^2 2020-09-17 [8a651d8] initialize shared memory immediately after launching to correctly save history of a new photon
2020-08-09*[874c5bf] support multiple NVIDIA GPUs, patch from fangq/mcxcl@c1e3ebb 2020-07-25 [41d4aef] Update README.md 2020-07-24 [f9dd4dd] add markdown version of README, add travis badge 2020-07-24 [3cbccd1] fix oct for travis linux 2020-07-24 [b532d76] use MSYS for travis windows 2020-07-22*[214fc47] add travis ci script 2020-06-28 [a3c98c5] use the new gitfilter format 2020-04-18 [867b2b9] test gpu pointer to avoid error 2020-04-11 [46e1fbe] wrapping opencl api with return value tests, fix a few small memory leaks 2020-04-08 [cb30b31] fix beam focusing issue reported by Luka Rogelj 2020-04-06 [123dc0d] remove mingw64 compilation warnings 2020-04-06 [e65c3a3] define function pointer to update progressbar 2020-04-06 [f3c3b56] fix error when cfg.gpuid is a string 2020-04-05 [e9e04a7] update function name in help info 2020-04-05 [1abe23d] make creating octave mex file work again 2020-04-04 [c6c5d55] prevent ioctl linking with mingw64 gcc compiler 2020-04-03 [c986ab7] use more portable output handle 2020-04-03 [66b8f4f] flush octave compilation command 2020-04-03 [5d3df36] replace %I64u by %zu 2020-04-03 [c20ed88] compile on windows 2020-04-03 [50fbcc7] remove all matlab mex compilation warnings on windows, add installation instruction 2020-04-02 [c8884a4] remove all warnings raised by gcc 8 and 9.3 2020-04-02 [d7becea] add mingw64 mexopts xml file for matlab r2014 or newer 2020-04-02 [085420c] need to select both c and c++ compiler 2020-04-02 [9e8918d] add CL header for better portability 2020-04-02 [8f90d58] add missing header files from mingw64 compiler on windows 2020-04-02 [72f6ded] test buildmmc script on linux 2020-04-02*[387e3ba] add matlab script to build mmclab mex file 2020-03-31 [c01b6ae] test on msys2 gcc compiler 2020-03-30 [92b19e3] switch windows building environment to msys2 2020-03-29 [48e397f] make byte alignment compatible with MS VS 2020-03-25 [a2948be] force updating elemprop if elem contains more than 4 columns 2020-03-25 [18fb6fc] prevent mmclab from crashing if the source is not enclosed 2020-03-25 [d6de33e] use cfg.steps to specify voxel size in DMMC mode, instead of unitinmm 2020-03-25 [7e04588] allow users to set cfg.maxdetphoton in mmclab 2020-03-03*[99312c3] fix wrong ray-tracer problem when compile with omp, finish fedora packaging 2020-02-26 [d4608f4] fix gpuid=-1 does not work bug in mmclab 2020-02-25 [acef8db] update onecube filtering command, fix #51 2020-02-20 [36c4f5f] remove mexsse and octsse, add mexomp and octomp targets 2020-02-20 [8527d82] allow make omp to work again, but currently results are not correct, do not use 2020-02-05 [dbea367] fix all warnings for gcc 7 2020-02-05 [a5ac4a9] update cjson to the latest git version 2019-11-19 [75a4844] use detp.prop and detp.unitinmm if present, similar to mcx #83 2019-11-19 [a89457a] fix time/weight scaling, see mcx bug #83 2019-11-05 [a10b743] revert the previous change, use a more robust condition to find ppath 2019-11-05 [3c3ab43] remove the unneeded condition when converting ppath in loadmch.m, fix mcx bug #82 2019-10-29 [4d7d94f] partially update documentation 2019-10-29 [a9c4732] rename mmcl executable to mmc 2019-10-29*[0c3f19f] Merge branch 'mmcl' to 'master', now mmcl is official! 2019-10-27 [206bedf] fix skinvessel example 2019-10-18 [a3823b8] add the missing -d 1 flag 2019-10-14 [4940761] fix end-of-line markers 2019-10-14 [2139721] fix example file permissions and end-of-line markers 2019-10-12 [373459a] remove commented lines 2019-10-12 [e321340] add initial element search for wide-field sources; update mmcl examples 2019-10-11 [8e6f561] bug fixing; update mmclab examples 2019-10-11*[1a8e81f] bug fixing; add support of surface diffuse reflectance for mmcl 2019-10-07 [3262326] resolve some compiling issues,e.g. missing argument in functions; missing fields in data struct 2019-10-07 [261fe69] manually resolve merge conflicts 2019-09-09 [9a2ad2a] download colin27 mesh from github instead 2019-08-31 [7e8ad7a] fix .mch file header due to wrong history data structure 2019-08-24 [4dc1228] fix memory crash due to wrong output data length for plucker, havel & badouel ray-tracer when basisorder is 0 2019-08-20 [ca4d675] allow photons that exit into 0-label elements to be detected 2019-08-20 [26477c7] add gpu parameter specifier to make RGA happy 2019-07-26*[9e800e0] fix output detected photon information for SSE-MMCL and GPU-MMCL 2019-07-25 [a3b7714] fix maximum time gate rounding bug 2019-07-24 [eb109e0] return detected photon info in mmclabcl,print progress bar 2019-07-18 [7995941] compile on new mac 2019-07-18 [9f50a7f] hacky workaround to avoid convert_float error for -1 returned by vectorized isgreater on Intel GPU 2019-07-16 [ef0ef3f] use mmclab('gpuinfo') to query gpu devices 2019-07-16 [a45f5a1] undo the revert 2019-07-16 [cfe52b4] fix rng bug on mac 2019-07-16 [72ce3a2] fix RNG error for SSE MMC on windows - long is 32bit on windows 2019-07-16 [c242112] long is only 32bit on windows, fix incorrect mmc results 2019-07-15 [c8c1cb9] Merge branch 'master' into mmcx 2019-07-12 [04565c2] compile for mac with static gcc and gomp 2019-07-12 [afcfda1] mac opencl does not accept more than 8 constant inputs 2019-07-12 [57880f1] allow to compile on windows 2019-07-12 [1e5455d] changes to compile on mac 2019-07-12 [3621fc9] make mmcl compile on mac 2019-07-12 [167ec74] output oct file with correct name 2019-07-12 [95f65bf] disable dref demo as mmcl has not fully merged with master 2019-07-08 [9e622d5] fix index issue for branchless ray-tracer 0-basisorder 2019-07-05 [23f1159] merge with master 2019-07-04 [a78760b] fix normalization indexing bug 2019-07-03 [522e21b] add matlab scripts to create plots for the paper, paper ready to submit 2019-07-02 [7779235] change line color 2019-07-02 [9fc9d0a] revert the mua change made yesterday for dmmc, thanks to Shijie 2019-07-01 [5f58a5f] update benchmark 4, correct alignment in benchmark 1 2019-07-01 [d3ebb41] change prefix in mmclab printing 2019-07-01 [a36c408] update run benchmark script 2019-07-01 [e1e567f] update mmcl bench mmclab script 2019-07-01 [f5aeac9] add benchmark scripts for mmcl 2019-07-01 [c1ec5f1] group 1/mua to normalization 2019-06-30 [5a29aa0] fix double summation and oldidx bug in method=elem 2019-06-30*[4d9013f] mmclabcl is working 2019-06-29 [acba8db] save nii for non-grid ray-tracers 2019-06-29 [fe9c83d] add b2 run_mmc script 2019-06-29 [727e89d] change b2 mesh 2019-06-28 [e537021] further update benchmark script 2019-06-28*[5b7e840] benchmark script to run on different host 2019-06-28 [3fb9a9c] fix param priority from command line 2019-06-28 [5325e53] fix cl build error 2019-06-28 [4fd89e3] make dual-mode mmc again, remove unneeded registers 2019-06-28 [ad13d2a] revert code back to 03/28 version 2019-06-28 [fba4b95] update benchmark script 2019-06-27 [420c0d4] b3 test script 2019-06-27 [d2f193f] update script 2019-06-27 [8b7e3ff] save output to bin 2019-06-27 [827b30d] add mmcl benchmark master script 2019-06-27 [d87e999] reduce colin27 photon 2019-06-27 [7f1e3ee] add spherical_shell demo 2019-06-27 [b971de3] add DMMC paper figure 1 mmclab demo script 2019-06-27 [f1876ba] add dmmc example mesh file 2019-06-27 [422a9da] add skinvessel mmc and dmmc example 2019-06-27 [02f208a] add mmc2json script to convert mmclab cfg to json 2019-06-27 [f0ff69b] fix the ray-tracer after dref related changes in the master branch 2019-06-26 [454de4f] update code variant name 2019-06-26*[d81fd9a] dualmode mmc - support both SSE4+cpu (-G -1) and CPU, rename to mmcl 2019-06-26 [4c65a21] merge with the latest master branch 2019-06-26 [90d0d20] fix outputtype=fluence and wp output, fix #36 2019-06-26 [45d3711] make mmc functions compatible with mcx output 2019-05-24 [0494f23] 2nd attempt to fix the reflection when mirror bc is used 2019-05-24 [a7ac195] allow internal reflections when mirror bc is set 2019-05-16*[24e2bb0] use isreflect=2 for total absorption on outer surf, 3 for perfect mirror 2019-04-30 [a2dda44] allow point sources to use initial elements 2019-04-30 [cbdcb1e] avoid initial elem search in cone/arcsine source launch 2019-04-24 [caa0a65] fix output format in both dmmc and mmc mode 2019-04-24 [cb93d6c] remove mac compilation error 2019-04-22 [565ad68] fix bugs and finally get diffuse reflectance output to work 2019-04-21 [5b79f08] save diffuse reflectance on surface 2019-04-21 [44d1865] copy initial test from plucker to other 3 ray tracers 2019-04-21 [ed8dbdd] saving dref on surface, support saveref option, feature incomplete 2019-04-17 [f3623ff] minor update to function parameter type 2019-04-16 [492aa3e] restore the capability to save mch files 2019-04-02 [6407e74] update loadmch to support user defined output 2019-03-28 [5312319] use DO_NOT_SAVE flag to remove memory operations 2019-03-26 [22fe07f] remove unused variables 2019-03-26 [eeccd6d] fix a bug found by Shijie 2019-03-25 [fb51a41] fix the missing energy loss for the first step in new voxel 2019-03-24 [78622ef] merge with master from github 2019-03-24 [2508642] first step to make mmc cl kernel cuda compatible 2019-03-23 [0e0f96f] fix bug in writing compression 2019-03-23 [752753d] use atomic call to return raytet counts 2019-03-23 [3676918] disable buffer fanning in the kernel 2019-03-23 [3f52cb2] only write to memory when moving out of a voxel 2019-03-23 [370e91d] use macro to dynamically select dmmc vs elem-mmc 2019-03-21 [0b647e7] fix export data length 2019-03-21 [109910e] use a better random number to distribute the writing location 2019-03-21 [1b9d645] use --buffer to set copy of memory to reduce racing 2019-03-21 [2f2aec3] matching the branchless badouel algorithm in mmc, thanks to Shijie 2019-03-21 [0477ade] avoid mac compiler error 2019-03-21 [9f5eaf9] fix a critical bug for dmmc ray-tracer 2019-03-21 [c6c0721] disable volume saving if --save2pt is set to 0 2019-03-21 [bc67cc8] fix incorrect results on AMD devices 2019-03-21 [4ec96ed] update printed program name 2019-03-20 [5dd80a1] no need to convert char lookup in string 2019-03-20 [cfaf43b] merge with mmc v2019.3 master branch 2019-03-20 [4efb7b7] fix OpenCL-precision-induced ray-tracing accuracy issue in Branchless-badouel ray-tracer 2019-03-05 [ae6de41] update change log and README for v2019.3 release 2019-03-05 [10f72ea] support mc2 and nii output for DMMC 2019-03-04 [f403303] disable linking with iomp5 to avoid crash in older matlab 2019-03-01 [996f765] add USC 19.5 atlas example, Fig9a in TranYan2019(submitted) 2019-02-11 [8acc8d7] really reduce register count, fix DMMC output crash 2019-02-10*[61ef773] fix dmmc, 5x speed increase from normal mmc 2019-02-10 [2417416] fix infinite loop, thanks Shijie! 2019-02-10 [5ef4499] return total ray-tet intersection counts 2019-02-09 [7fab7dd] moving node,elem,type,facenb,normal,srcelem to constant mem 2019-02-09 [ec0e183] optimized based on vtune profiling on intel cpu 2019-02-09 [84e87e4] add xorshift128+ RNG, seed each thread by host RNG 2019-02-06 [fe76503] convert output weight to double 2019-01-31*[5c571cf] now can run on cuda and cpu 2019-01-30 [29ae3e1] need debugging, but very close to bug free for the ray-tracing 2019-01-27 [75fbcde] mmcx now can compile, no error 2019-01-18 [53fda23] fix mmclab crash due to racing in multi-thread, similar to mcx issue #60 2019-01-17 [2f61bfe] a very rough draft of the cl kernel, converted ray-tracer from SIMD to float3 2019-01-14*[43aae8f] sync internal mmcx branch with master, mmcx branch was started in 2018
2019-04-24 [8270b96] fix #35 - incorect mch file header in photon-sharing implementation 2019-04-22*[6736244] saving dref on surface, support saveref option, add help info and demo 2019-04-16 [492aa3e] restore the capability to save mch files 2019-03-23 [87babe7] dmmc save data only when moving out of a voxel 2019-03-23 [44bd1a5] adding mesh file for dmmc validation example 2019-03-23 [a48cf39] fix the extra char in the shortopt list
2019-03-21*[e57fad3] fix branchless-badouel ray-tracer and dmmc bug, need to make a new release 2019-03-20 [283c3c0] use 64bit integer for total photon number 2019-03-20 [a5680bd] add the missing prop file for dmmc in examples/validation 2019-03-20 [704ca4a] fix empty string test
2019-03-05 [10f72ea] support mc2 and nii output for DMMC 2019-03-04 [dbd3617] fix wrong usage of free() on pointer returned by mxGetPr 2019-03-04 [f403303] disable linking with iomp5 to avoid crash in older matlab 2019-03-03 [389d852] add color to command line output, cmd options high priority 2019-03-01*[996f765] add USC 19.5 atlas example, Fig9a in TranYan2019(submitted) 2019-02-09 [84e87e4] add xorshift128+ RNG, seed each thread by host RNG 2019-01-18 [53fda23] fix mmclab crash due to racing in multi-thread, similar to mcx issue #60 2018-11-21*[6c67651] add mcxyz skinvessel benchmark 2018-10-29*[d0d0cbe] add photon sharing example for mmclab 2018-10-21 [6b42e92] add example (validated) for photon sharing 2018-09-07 [2b28159] fix a bug for doubling thread number every call to mmc, thanks to Shijie 2018-09-01*[0eaf31b] add nightly build script for mmc deployment 2018-08-27 [cab6ca6] support clang 2018-08-26*[71df635] add initial webassembly support for web-based mmc 2018-08-19 [feab0bd] link mmclab on windows
2018-08-14 [25b323c] fixed discrepancy between DMMC and MCX along the boundary 2018-08-13*[2cfd54a] force matlab to use multi-threading with mmc 2018-07-16 [45c5b72] fix branchless_badouel_raytet: bary.x of -Inf value 2018-05-13 [f5f0379] process mcx generated detp output without w0 2018-04-24 [8241b0d] correct typo in array index 2018-01-29 [e4c33fb] use mcxpreview in mcxlab to preview the domain 2018-01-27 [2ee97d7] restructure folders, update documents 2018-01-14*[53eb374] make mesh elem and facenb flexible to support complex elements in the future 2018-01-13*[ecd9b80] add detailed doxygen documentation 2017-12-08 [50d7770] atomic condition fixed for havel element basis 2017-11-24 [62714c5] fix normalization, validation of dmmc 2017-11-15 [96c4eda] convert energy deposit to fluence 2017-11-13*[8e2f5ea] add dualmesh mode in mmclab 2017-11-13 [3a25295] use unitinmm to set voxel length,fix normalization,fix weight deposit 2017-11-09 [f9e9b93] define dedicated cfg->e0, allocate weight for grid output 2017-11-09 [c528baf] initial update to support hybrid mesh-grid MC 2017-10-30 [a63c19a] fix bug in getdetimage 2017-10-05 [0b5e2a8] enable wp for plucker mode, remove save_scatter_events (a function no longer needed) 2017-10-05 [af83f00] minor modification for mmclab, when there's not issaveexit field in cfg 2017-09-14 [e1de1ff] modified replay examples for testing wp and wl performance 2017-09-14*[a75528b] merge wide_det branch to support wide-field detector array output 2017-09-14 [07b33f3] make mmclab compatible with older version of MATLAB 2017-09-14 [70a308d] validated wide-field replay under "wL" mode, added an example 2017-09-08*[db8ebf9] replay for detection pattern (binary), need to validate and add example 2017-09-08 [ad76c08] suppress message of "specifying pattern file" when using input file 2017-09-08 [9d71d01] manipulate replay photon weight for pattern illumination (sync with master) 2017-09-07 [1061ab6] fix the wide_det issue for mmclab (caused by wrong maxmedia value), polish demo_wide_det 2017-09-05 [373bbb1] do not split subfields when no photon is detected 2017-09-01 [ebf0bca] add wide_det example for mmclab, still has a memory issue 2017-09-01 [a574da7] change some int to size_t for Matlab2017a 2017-09-01 [20ceaf4] modified mmclab.m for outputing detimages, mmclab issue not fixed 2017-08-31 [ffe7abe] fix size_t to int conversion issue, enable wide_det for mmclab, to be tested 2017-08-31 [1e86fdb] put calculation and saving of detimage into two functions, issues with mmclab 2017-08-31 [b0c620d] manipulate replay photon weight for pattern illumination 2017-08-16*[3a2e634] Output accumulated photon weight as time-resolved 2D images with an example attached 2017-07-15*[567d9ee] fix mmclab for octave crash due to an octave bug #48678
2017-07-03 [dd50986] fix rootpath handling, move MeshID and InitElem to Domain section 2017-07-02 [d315be8] fix basisorder verbose flag,fix terminal width initial value 2017-06-20 [0fb129d] support rotation angle in expanded src domain 2017-06-20 [04485b3] add --debugphoton flag to print debug info for selected photon ID 2017-06-06 [c076f68] add flag --atomic to select use or not use atomic operations 2017-06-06 [a797230] support older version of MATLAB 2017-05-30 [74be9ef] support mcx detpt and old mmc output format 2017-05-27 [10c8a27] avoid static TLS error in matlab by linking with libiomp5 instead of libgomp 2017-04-01 [588bd00] update replay testing statement 2017-03-31 [20b2906] add musmap for nodal based Jacobian (validated for homo media) 2017-03-30 [d646b4f] avoid launching 0-energy photons, improved upon c4a87df
2017-03-30 [26fd658] fix a bug when replaying photons from multiple detectors 2017-03-30 [c4a87df] avoid launching photons with 0 weight (for pattern with 0 values) 2017-03-30 [c2e0e3c] function for calculating tpsf curve with detp data 2017-03-04 [1eaed5f] flush printing message in mmclab 2017-01-15 [b9b98c2] fix a bug that prevent external detector from detecting photons 2016-11-05 [0d988d8] including mexopts file for compiling mmclab on windows 2016-08-29 [f8101f6] resize mesh->med before use for widefield det 2016-08-29 [1f6451f] make mmclab support widefield detectors 2016-08-01 [d935226] implement time-dependent Jacobian under "replay" mode 2016-07-24 [d11dde5] add MCML like MC for validation and replay 2016-07-03 [b767e87] modular mmc main function, better interface with other programs 2016-06-08 [2458363] autobuild support for windows
2016/01/01 release 1.0-beta, also label as v2016.1 for time-based release strategy 2015/12/31 fix crash caused by round-off errors in Havel SSE4 ray-tracer 2015/12/25 replace drand48_r by erand48 for POSIX compliance 2015/12/24 make sse target by default for mmc and mmclab 2015/12/23 debugged replay demo script in mmclab, plot the sensitivity profile 2015/12/20 update cJSON library to the latest version 2015/12/16 add SFDI simulation examples and demo script 2015/11/10 use Kahan sum for total weight accummulation to avoid incorrect normalization 2015/09/13 support converting and diverging beams in all area-sources 2015/08/06 add script to systematically compare MMC and MCX 2015/08/05 automatic retessellation when a wide-field source is specified 2015/08/05 add wide-field source support in MMCLAB 2015/07/18 fix vector normalization bug when reflection is enabled 2015/07/17 fix floating-point round-off bug by using a proper epsilon value 2015/04/24 fix crash due to the round-off of photon timer near tend 2015/04/21 report wide-field overhead in all ray-tracers 2015/04/21 add wide-field detection support 2015/04/11 allow to specify endianness when loading mch files 2015/02/06 initial implementation of mesh-retessellation based MMC for wide-field simulations 2014/06/05 add Colin27 brain atlas example
2013/12/22 WebMMC skeleton uploaded, allowing MMC to run inside a web browser 2013/12/20 output static or dynamic libraries (libmmc.a/libmmc.so) 2013/06/26 (experimental) output absorption Jacobian pattern in the replay mode 2013/03/03 saving photon exit pos and direction with the "-x" flag 2013/03/02 photon replay with a pre-recorded seed for perturbation MC 2012/08/17 add MMCLAB examples 2012/08/16 initial ray-tracing in MMCLAB if source is not inside the mesh 2012/08/03 allow detector individual radius 2012/07/19 (experimental) add MMCLAB - a matlab interface 2012/02/02 support binary output format with -F flag 2012/01/25 support isotropic source, reading source types from JSON input
2011/12/19 final release of 0.9.0 2011/12/19 fix a critical bug in the Havel ray-tracer, all SSE4 binaries are affected 2011/12/15 make nphoton unsigned int, maximum photon number is 2^32-1 2011/11/02 print unit and line number during error handling 2011/11/01 accept JSON-formatted input files 2011/10/14 Stefan Carp contributed a patch and validation package for DCS simulations 2011/10/12 fix a bug in writing mch file under Windows 2011/08/24 fix an SFMT bug when initializing RNG seeds in multiple parallel threads
2011/06/17 final release of 0.8.0 2011/04/23 sync private dev branch to trunk, publish v0.8.pre in the SVN 2011/04/19 the second paper regarding MMC published on Biomed. Opt. Exp. 2(5):1258â1264 2011/03/17 fix a critical bug in sphdiffusionslab.m 2011/02/25 use atomic for weight accumulation and double precision weight array 2011/02/20 can output fluence and energy deposit with the -O option 2011/02/18 supported recording photon partial path lengths 2011/02/17 supported specular reflection, match results from other simulators 2011/02/11 basic support of source types, set seed from command line 2011/01/12 select ray-tracing method from command line 2011/01/11 added sse math support, gain about 10% speed-up 2011/01/11 simplified Plucker method with initial barycentric coordinates 2011/01/09 used initial barycentric coordinates for Havel/Plucker methods 2011/01/05 added branchless Badouel with SSE, improves speed by 13% 2010/12/21 added support for Badouel's method 2010/12/20 merged with mmc 0.4.0 public svn 2010/11/17 Havel's SSE4 ray-tracing algorithm worked 2010/11/14 branch mmc source code for SSE implementation
2010/12/14 tested on Windows using MinGW 20101030 with gcc 4.5 and LibGW32C, add documentation 2010/12/13 fixed negative time difference by promoting time counter from int to long 2010/12/13 fixed diminishing absorption fraction by using a double accumulator 2010/12/12 added initial support for SFMT RNG, speed and accuracy need further optimization 2010/12/11 included RNG C units in the main code to enable static in-lining 2010/12/04 initial doxygen support for automatic documentation 2010/12/04 support llvm-gcc, icc and tcc via "make target CC=compiler" 2010/12/03 speed up gcc-compiled binary by 2x with fast exponential 2010/11/30 fix normalization using the correct time unit 2010/08/29 initial Windows support using MinGW and Libgw32c
2010/08/29 first public release of MMC - v0.2 2010/08/28 update examples to use iso2mesh 1.0 and MCX 0.4.9 options, remove unused input file format 2010/07/25 release Collins adult brain atlas FEM mesh version 1 2010/07/25 add help text for all matlab/octave functions, release Sphere-Diffusion toolbox v1 2010/07/16 add README files for all examples 2010/07/15 paper published http://www.opticsinfobase.org/boe/abstract.cfm?uri=boe-1-1-165 2010/07/15 update license to GPL v3, mmc is officially open-source 2010/07/04 paper accepeted, update website at http://mcx.sf.net/mmc/ 2010/06/23 used meaningful strings as debug flags, added "P" flag for progress bar 2010/06/23 made it possible to model transparent medium 2010/06/21 Russian Roulette to terminate photon 2010/06/20 added boundary reflection at internal or external surfaces 2010/06/07 paper submitted, wait ... wait ... wait ... 2010/06/04 finished paper, added timing unit from mcxcl project, added MMCDEBUG macro 2010/06/03 generated complex mesh from a brain atlas, run simulation and make figures 2010/05/30 announced sphere-diffusion toolbox, tested for Windows, compatible with Octave 2010/05/27 fixed a regression (once fixed in rev161), results are good, regenerated figures 2010/05/26 added scripts for analytical solutions for sphere in infinite-slab geometry 2010/05/25 added scripts for analytical solutions for sphere in semi-infinite medium 2010/05/23 used simple fluence addition approach by default, add MINSTEP_ADDITION macro 2010/05/22 reduced roundoff-error by explicit counting energy loss 2010/05/20 added README document 2010/05/20 added functions to compute the analytical solution of a sphere inside infinite medium 2010/05/19 used elem-volume, update tests, twig parameters 2010/05/19 used MCX approach for fluence accumulation, debugged normalization, tested with benchmarks 2010/05/13 updated POSIX MT RNG to the 48bit version (drand48_r) 2010/05/10 added POSIX MT and logistic RNGs, use MCX interface, improved OpenMP efficiency 2010/05/09 debugged meshtest case, flexible mesh generation using improved iso2mesh toolbox 2010/05/07 isolated photon simulation commands into a function 2010/05/07 created sortmesh.m in iso2mesh to increase memory consistency and reduce cache miss 2010/05/06 added meshreorient.m in iso2mesh to ensure the correct tetrahedron node orientation 2010/05/05 added validation and mesh test cases 2010/05/04 added matlab utilities for mesh generation and result processing 2010/05/01 fluence normalization and SSE4 support 2010/04/22 added support for time-resolved imaging, use node voronoi-volume to normalize 2010/04/21 major code cleaning up, bug fixes for scattering handling 2010/04/18 update weight-recording scheme, only save the absorbed energy, need revisit 2010/01/01 used gprof to optimize,add debuglevel,add weight middle pt at pin and pout 2009/12/30 added examples: sphere-box, port mcx_utils from MCX (mcx.sf.net) 2009/12/30 supported scattering based on mus, and accumulate packet weight 2009/12/29 initial upload to SVN 2009/12/28 completed mesh classes, tested with mouse-head-CT dataset 2009/08/07 ray-tracing of randomly scattered particles and added Makefile 2009/07/31 initial version supporting Plucker-coordinate-based ray-tracing