From 6c5f42416f065d2e7e0c4c8a8481f2219e212631 Mon Sep 17 00:00:00 2001 From: Leon Styhre Date: Fri, 6 Jan 2023 11:47:13 +0100 Subject: [PATCH] Squashed 'external/CImg/' changes from c0becdf88..4d061dcd6 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 4d061dcd6 math_parser(): Add function 'map()'. ac599e123 . b9fa7354f . 673cfe3d5 math_parser(): add mutex to protect access to image list statistics. 862b2c7b1 Fix bug in math evaluator function 'find()', and improve 'colormap' in 'full-colormap' mode. 44b1d556c draw_text(): Fix (non-standard) passing reference to va_start() macro. 6db20df4f . 03b2203ea . f9619587b math_parser::da_remove(): Improve error message when trying to remove element in empty dynamic array. 3486b3ee7 Remove unused version of _sprintf(). 07040bb0e Fix warning about using 'vsprintf()' with clang-12. 5f667e2c7 . e6c7b23c9 . 099447df4 . e89b77dfa . 1d5505416 . 163cf1caa . 40a666909 . 86e55504c . 381ba0bfa . b886800ad . 31648450a . 2e82b7cd9 . 2daf2862f . c6e4360df . 6c94a6b20 . d212c0ce3 . 5ff6f38d5 . 3e7a4f21d . ccf1db65e . a411cc180 . e0018918b . 23903475c . 6a8b81169 Command 'text': Custom font can be specified. a2dea0866 . d31902272 Fix bug in 3D convolution operator. 210b728a3 math_parser(): add new predefined variable 'v' (eq. to 'u(-1,-1)'). b030ea4e6 math_parser() : Fix parsing arguments for function 'permut()'. f90e52c4d math_parser: Allow 'norm()' to return a const value when possible. 17b8f5bb5 . 6ffe10e13 . 3c7b877b3 Improve inner/outer parallelization decision in 'correlate/convolve' methods. 56e2268b4 . f4eeec4d2 . 00ce10760 . bf0f5dcb2 . 45df40a35 . 43950e631 . a73a2f129 . 1d033f1da math_parser: Start implementation of function 'offset()'. 0f673c279 . 59a34f2fe . 815c40021 . 422d6ecc3 . b0ab9037b . e2af0d091 . b41f7850e . aebccaad9 . 9d60f335e . c65104e8c . 9ac2b7ae1 . 43558edca . 6cd4e15e6 . fc2ca5606 . aa5b1149b math_parser: Refactor function 'draw()', and prepare for variant that draws in vector-valued variables. 6c47625f3 . 8d1bbe3ef . d5fcd765c . 6c43cf325 . 0d54f89e7 . 56cc9a806 . 60411ef05 . 009594d2d . acf1a2a70 . 8d3bfe7fc . 7078e25a5 . 3d56cac0c . ea0074152 . 4977f9500 math_parser: Prepare code for implementing 'crop()' on vector-valued variables. 382ad1b59 . 8834a487e cimg_math_parser(): Be more strict in the use of vector-valued arguments for some functions. c33802810 . 4b3653922 Remove useless test with 'is_relative' for math_parser's function. 732986f3e . 94f12f994 Allow creation of animated .gif with transparent backgrounds. f3a5ba719 . 866b6d752 . f2dc3ef7b Fix issue #368. 55ff59944 . 386fd1871 . a456e9010 . 28a857b69 . 110ca2d87 . 404303418 . 2e2e0c5e8 . bf7b13196 . 91b63f722 . be47c0a33 . 7d232bdbf . e6012687d Merge pull request #367 from GreycLab/master 642cebcfd . f650e941d . 50a4ab03f . cdedc97f8 . 9ec047a1b . 65c462cab . 2eb56a718 Merge pull request #366 from marsh0/develop a8939b6ef . 334b3e9c1 Fixed unsigned int 64 to unsigned int warning 8e72d80fd . e3cc84697 . b1c13dfc5 . fb79a9d3e Improve computation of matrix pseudoinverse with LU solver. 76fae2fcd Add option 'use_LU' to command 'solve' and math function 'solve()'. bb03df435 . d86916333 Merge commands and math functions 'invert' and 'pseudoinvert'. 49f61eb8a Merge commands and math functions 'invert' and 'pseudoinvert'. a63492bcd Merge commands and math functions 'invert' and 'pseudoinvert'. a403c817e Add 'lambda' option to the various 'pseudoinvert()' functions. ca21c1d73 . e0a825b1a . 931b498a5 . 9112b4711 . f52871859 . 31dabfb13 Start work on next version 3.2.0. 1e1078317 . 7f3157a04 . 03f877161 _cimg_math_parser(): Slightly change behavior of 'isin()' to allow testing vectors. c63cf71c7 . 1921b379a . ec000cd2e cimg_math_parser(): Fix bug in accessing predefined variables 'i0,...i9'. c3cef822b Merge branch 'master' of github.com:GreycLab/CImg a28648518 . 9a0f19ded cimg_math_parser(): Fix incorrect handling of 'yM' (regression). bbad387b3 Merge pull request #359 from bkmgit/ci c5dcd933e Add badge with build status b3059fa96 Update branch name bd0eff91d Merge branch 'master' of github.com:GreycLab/CImg c6f53e867 _cimg_math_parser(): New predefined variable 'id' (std of current image). 7d5619934 Merge pull request #358 from bkmgit/ci db2e449fd Add 3 new postcards. 21c168170 Fix wrong detection of multi-threaded expression error in 'CImg::fill()'. ecfc076a5 Update MacOS dependencies 67ce48f35 Update MacOS dependencies 9c14a9000 Update MacOS dependencies 4184a25ba Update dependencies 813ed36bc Update dependencies 94b62e7fb More formatting fixes ab395bb38 Formatting fixes 052e71ba7 Enable testing 3405584e2 . 5ad3d1af1 Add math parser function 'da_freeze'. f53b5ab9c . 957ecc309 . 5934122c9 Add postcard #77. cb93f21c1 Add postcard #77. 2835ec2e2 . 27ffac840 . f68f333dd . f25f7e1e8 . 80e582a0c . 406fbd072 Merge pull request #355 from Poohl/develop a580234ef font size doc ae654a628 Final release 3.1.4 e35d78341 Auto-commit for release 3.1.4_pre 54ff2d7af . 25bd0c3c6 . 3bb6458fc Simplify error handling in 'get()'. 39b4f963a . 568b34c4a Make 'swap()' return 'nan'. 0cdfb6714 Make 'set()' return 'nan'. 69a03bf83 Make 'copy()' return 'nan'. da854d5ae Invert argument order in math function 'store()'. 8f493f7cd Invert argument order in math function 'set()'. 6f1ea6eab . e82ed2c61 . f511bb5c8 . a35cb93e7 . a452d475c . 2bc84810b . ab4381619 Merge pull request #353 from amyspark/amyspark/support-msvc aa4455fe4 Support MSVC's OpenMP 2.0 5f26c8745 . 6f8ee7c07 . a01439210 Change variable name '_res' to '_resu' to avoid conflict with other badly written libraries. 480b2f0fb Add command 'eye'. 921772323 Start work on 3.1.3 version. 21ba6b4db . 8637d8f4d Define 'cimg_max_buf_size' to another value for 32-bits architectures. d8bb494d6 Define 'cimg_max_buf_size' to another value for 32-bits architectures. e8affb299 . 47e249d38 Fix bug with 'break'. 8fe779e8a Final release 3.1.1 e01419fc5 . 52b3d735a . c4ddd6131 Update plug-in 'cvMat.h'. 104cfb8a6 Start 3.1.1: Fix possible misinterpretation of arithmetic expression in ':=' assignment. 1d1c75c36 . bc010ab25 . d27c30fe1 . 254a4cf7b . 5801be3d2 Merge pull request #348 from 7unn3l/master 37cf0c1e5 add global hardening against RAM exhaustions in safe_size 6b78c3b3f . 7b7688dc8 . c3c8c22d6 . 471083bbd . efd8d2965 . 577bf7b50 . 9d03892e3 . f8dba12b8 . 3ca5dcea2 . 29bdc1dce . a63b71bf0 . 22f226f4c . 761d5c085 . 1665172bb . c7ee7bc9b . 193abd7b2 Add macro 'cimg_max_file_size' to control maximum allowed file size when reading image files. 0f7f7fb45 . 619cb58dd CImg<>::load_bmp() and CImg<>::load_pandore(): Check that dimensions encoded in file does not exceed file size. d0f152d53 Fix offset issue when dealing with large images in 'CImg::erode()' and 'CImg::dilate()'. 607aea7c8 Fix 'get()' in math parser. 8824c078d . 0da4cb0ac . d9a56919a . 52bc43848 . a02df736a Allow command 'store' to manage bigger images. 0cf328ab6 . d54761b9b . 72e5e6314 Remove unused variables in 'CImg::opening()' and 'CImg::closing()' 466022095 Format code to 120 max char./line. 790710040 Merge pull request #340 from amyspark/amyspark/powershell 712078d3f load_network: add Powershell fallback for Windows e7eb920b7 . fc6ba0eec Add 'CImg::otsu()'. 8404b81a0 . 877ba9da8 CImg::opening() and CImg::closing(): Use min/max of type T rather than min/max of image values, for initialization. 3cd82ea4f Add methods 'CImg::opening()' and 'CImg::get_opening()' 640195d02 Add methods 'CImg::closing()' and 'CImg::get_closing()' 94a7c7f13 . 4171fb912 . b5f2177c5 . 3200701db . fddf9334f . 555019468 . 353cd8fbe . c864cb0ac . 97c2923c0 . 366977648 . 66261e676 . baf9a8009 . a87a42217 . 2e99e630c . 23c738e85 . 8a17cb81a . 8b23cf36b . 1190e3f98 . ae4c10e71 . b6febab4c . 891d91621 Fix libtiff compilation issues with uint16_t and uint32 datatypes. ee4dc2f93 . 1189d5050 . 0a260f407 . 983c502b4 . 376ac7316 . d51bccfce . 82d6b436d . 3b7421231 Update README.md d7ea859fc . 4efbe8a4f . fb39f7c96 . abbcd69f2 . 5651a141f . 6816343ca . 96661b16f . 159baf24f Improve default image normalization behavior with CImgDisplay with integer types. 349274537 . 53cf0df32 Fix multithreading in 'structuretensors()' computation. 1bff57ea5 . 44df5b111 Fix compilation errors for type T=half. dd1139da4 . b4365b74b Auto-commit for release 3.0.3_pre 410a7eaad . 52cdaf7ff . e09678a3d Start work on 3.0.3. e15278726 Final release 3.0.2 927fee511 . 798007eaa . a7eebc5c4 . a27910604 . 032128ac2 . ac7980fc6 Start work on 3.0.2. 99a27d921 . ed6984ca2 . 51295de3e . 7c81d801c . d822b418f . bcdbaeb61 . 2798b9ea7 . a5465c18a . 8ad66d28d Final release 3.0.1 0a7c58232 . d67062b57 . b86e97ba5 . 0a346c624 _cimg_math_parser: Fix 'da_remove()' when used with multi-channel arrays. 6300c47a1 . 4cd0579d4 math_parser : Add functions 'printc()' and 'printcs()'. 0bda75c10 Fix #337. d3190b26f . c5b1a4ce0 Simplify _cimg_math_parser() by merging listin and listout into imglist variable. db7586fb4 . de80b8a82 . 93e45d310 [math-core-301] Fix floating point exception when functions da_*() are used with no images on the list. d4cc50b95 . f88c9148f . ba89271ed Final release 3.0.0 e6ef1ad73 . f687c4629 . 30991fb16 . 26e166b8d . c0995a47f . 3f4dc79a2 . 4d331435d . 64952efb9 . dbc19c290 . 9adb5bdb0 . f72d88d63 . 4d8ee52e6 . 73fef7018 . 175a53870 . e6cfba22a . 87bd9d126 . 10abd5fac . 00e896a07 . 1cffd322a . e2e9baab6 . b05d14e3e Add more boundary conditions to 'boxfilter'. c39bb2503 . aebc12a82 . fa5f067e0 . 63312e7d8 . a93108d4e Fix bug in 'correlate()'. e1e77b7c6 . 62bc6b134 math_parser, function merge(): check that specified variable is not a linked reference. 132bb175b . e0fd8a9b4 . 637eb4c2c . 237a1f4b8 . 481df9dbe . 8d502a5fe . 2ee5b1670 . 63a4fa78d . 5c4860ef3 math_parser: Add functions 'da_back()' and 'da_pop()'. 50c0d9839 math_parser: Add functions 'da_back()' and 'da_pop()'. 67f8c6e4b . 2d2c7f953 . bb98b67b7 . 6acf1c19e . c60635e01 . d6c50bfee . 9798f569d . 5f63bc3d8 . b2f29613e . f30babb43 . 920965b0d . 8e01f2833 . 93408dc74 . 6faf752ff . 5a1a2bd92 . bbecd96f2 . af9c0a434 . 035125b20 Fix CImg::draw_triangle(), with color-interpolated triangles (Fix #332). 8f949732d . 22190d30e . bc0160d79 . c2022354d . 72378e8e3 . 04638b8cd . 527aa2233 . a6d4956bc . f09c2b145 . c967157af . bedf7d5ea . de0612004 . 62d3898a9 . 254d842ee . c0a74ff77 . 5c13300f3 . 2352831c1 . 6e5a14a23 . e020fdf47 . 60bf6e4ec . 4e9f06083 . a95a0dcdb . bd37c5755 . ba155fd42 . 1a6e02309 . f1ba20b82 . 04b3f1e29 . c9eabd65d . 7089938f6 . 47d3a2ea6 . bcf797fea . 04e037028 . 79ea94dd4 . 7bdd3f9ba . fbd0be3a1 . b4f703517 Start the work for supporting new type 'list' in math parser. f6860f51b Merge pull request #329 from Irgy0/master 41f0d3777 . 8eaf50b64 . 2b7e44e57 . 535924dca Set PNG interlacing on to avoid an error message when reading interlaced pngs. df4e034f8 . 6c051eb27 Improve detection of .raw files (CR2,NEF,DNG,ARW). 25aaf3850 . 48173196c Fix a few int-overflow bug that could happen in draw_line(). bcfe7c7b2 Start work on v.3.0.0. Fix bug in CImg::draw_polygon() when large integers are used. cd95217c0 Final release 2.9.9 506fcb51b . b33dcc8f9 . 96114de6d . 25612a629 . 4ffd314d9 . 4314d6e25 . 90dba23bc . 06dc60988 . e3e62d883 Add a few optimized pattern detected to evaluate simple math expressions. c4a7e078a . 595c34a29 . 288e6b8d5 . c82328019 Optimize CImg::_correlate(). 2d83233c4 Merge pull request #322 from xen0n/fix-f1996f1 70876dde3 . 3544285d1 Auto-commit for release 2.9.9_pre 5304630b6 . eb50adb88 Bump to development version 2.99 2d2731eb6 examples: probe for -mtune=generic support, fix wrong LoongArch support 2e01be63d . c89f21f73 . 2a1fc8892 . 1258803c0 . 06e7b4c50 . 69f88f3d3 . 634ec5cb7 . 9f8bcec92 . 6a80064f7 . c62788122 . a6d3453ca . e0ba6764e . b2b2587f6 . 82030f386 . 60c8331bc . 92933de51 . a021efcde . def3d2053 . c498c1d4a . bc62b89bb . 8485f6964 . 3778d6470 . 6642c07af . dbe72a293 . 48885df73 . ac0890316 . a1a0296e8 . d7fa86a15 . 62d4b793d . a154473a4 . 72d6622d2 . 4951ce53a . 4df351bda . 8488374fa . 6c5d95e91 . bd5ad98b0 . 4baff4a38 . 011cf98e9 . 46f09676f . f9fc7ec05 . 64214b216 . 2c6199e6c Optimize CImg::_correlate(). 1ae6b689a . 6c7dab3a6 . 463a7a9e9 . 7ab29098f . 128d06351 . 0fb83de04 . 2f91d0522 . 64ae3ee54 . 025e85ea5 . c7ed44f42 . 91ef37e53 . f92c0ead4 . 29066e1b0 . 00c8c6ba7 . 5a408e8cc . 87226897c . 44b78c7fb . 0bfb8739b Merge pull request #321 from Lucky-Na/master f1996f10f delete -mtune option on loongarch architecture 3d72e8721 Fix variable prepending operator '..=' 499719e16 . 30a5cd2a0 . 43a6228be . 6dabed31d . 4fca316ed correlate() : Fix when used with 3x3,5x5 or 3x3x3 kernels and dirichlet boundary conditions. c72acfb3a cimg_math_parser() : Allow strings with blank characters to define empty 'begin[_t]()' and 'end[_t]()' blocs. 9423744d5 . 59ffa01f5 . b1816a335 . e29daa5b6 cimg_math_parser(): Fix argument counting in functions convolve()/correlate(). b9d347240 . 43af18673 . a79cada5f . 0275b3d84 . 2b0af18cf . bf67c30d8 . 6ca2fdcde . e38d56a2f . b14e79f6e Fix CImg::convolve() and correlate() for channel_mode==0. a996c28cf Fix CImg::convolve() and correlate() for channel_mode==0. 63d40db5e CImg::convolve()/correlate() : Fix bug with small kernels and channel_mode==2. 8b2e46ca5 . d9e5e9551 _cimg_math_parser() : better manage inclusion of begin(), begin_t(), end() and end_t() blocs. 46f043f34 _cimg_math_parser() : allow begin(), begin_t(), end() and end_t() to have empty arguments, and fix possible bug with returned value when multiple end() separated by semicolons. 6fb8ca212 . 59464c694 _cimg_math_parsers(): Fix thread number when math expression is evaluated in parallel. f8cc94faa . 7c414c67b . 7232ea760 . 9aaf75076 CImg::cimg_math_parser() : Add predefined variable T (max number of threads). ee59a3f87 . f5ff164b6 Add commands 'deg2rad' and 'rad2deg'. 28b0562b6 Add 'erf' function. f7308afab . d984ca0ea . 96eab6c69 Auto-commit for release 2.9.8_pre ae16ae5ef . be4612f61 . 87e8f38b7 cimg_math_parser : Add postfix operator '°' for degree to radian conversion. 6351adce1 . a68b594bd CImg::_cimg_math_parser() : Add functions 'deg2rad()' and 'rad2deg()'. a95d03e8b . a285f0fca cimg_math_parser: Add function 'erfinv()' (Inverse of the gaussian error function). 948cc956c cimg_math_parser: Add function 'errf' (Gaussian error function). 340d0a4c8 . 55e370660 Fix #319 c00abf5f0 Command 'input' : when loading a tiff file, bit depth is now set to status. 7222933de Change 'bits_per_pixel' to 'bits_per_value' in CImg::load_png(). 16979f3b3 . 5876d4f7d . 0d9a3c56c . 33a28fddf Temporary disable openmp clauses that slow down execution of CImg::draw_text(). efa524d6d . b726708e6 Implementation of the operator$() in math parser. 5f4914222 Start support of '$varname' expressions in math parser. ad7ea9ef1 Improve comments. 0d1e92f3f factorizes the use of 'is_varname()' in 'cimg_math_parser'. 3039446df . 2c5628639 Make function echo() of the math parser accepts no arguments. 0fa6b92a5 . 5f15b8c60 . 37559271f . d079374d8 . d7bd9f018 . e68a184eb . 749bc70ab . f4b53f6e5 . cc3c1f1da . 14c95cc60 . 075a7225b . dd8888fe6 Auto-commit for release 2.9.8_pre b0f47208f . 68e98b6bf . 68dbb754b . 1a2ff4ed5 . 6c5f78646 . 1d51d0113 . aa0eaa35c . f6bf39296 . 771fed51f . ae07e9402 . c2ea55532 Simplify memtype values to avoid optimizations in mathparser. b0bf3f942 Merge branch 'master' of github.com:dtschump/CImg 218efcf9b . 670c4b96b . 91c79ddbe . b2364dfe6 . 70aaa01e7 . 2970997fc . 4d07ae7cc . 7c15e7916 . 8e381d9ef . 5bcba71c9 . fde76337e . 7886267e6 . 979de2c2a . f7d659758 . 30761a532 . bb00749e6 . 317e5ac5c . 38b70c3cf . 009203b1f . 3ad6a9ae5 . 0794bbb21 . 03781c95a Fix bug in 'draw_text()' when background color provided. 09b9509ae . b7cd009a5 . 65c6ddc16 . 29ab0faff . db81f5dd3 . 3645f4fe1 . 8bdba276f . f4138047f . 30f6b4b06 . 306e56fe6 . 9a1ba9432 . 515bd31a1 . 6ca343326 . 766163fb8 . 9a95c0580 Try to fix warning in _load_cimg(). c9ad21c03 . a5a6d8145 . 11b76c6be . acc89aa12 . 50830d050 . 79c98a562 . 4a7bb5179 . c4b3fa7de . 227ac1511 . 96918daa6 . 32b165ef3 . a66d1967a . 0b499d9ad Auto-commit for release 2.9.8_pre f1f7eb052 . 0f67297eb . a70a9fe8a Final release 2.9.7 f96abe1f9 . bbc902b73 . 9aafe8661 . 6e2fe28f8 . 84999fc90 . 50010156f . 070ded77c . b6b16a833 . 19cfa4a58 . df9386eb1 . 6d2e1b033 . 54362bece . 6b6563f80 . 3aea1583d . 72aebaf5a Merge pull request #307 from lrusak/heic 94427018a . 9546e99a6 . bd5588194 add heic and avif support via libheif 089aeaa1f . 54eb48990 . 1b0e54e4e . 7109b5f09 . e8aed2a42 . 8174e8777 . 338f4b6c4 . 1838aef33 . e48345ab6 . f30d034a9 . e15eac073 . b2129184e . d9ef878a2 . 5f4047615 . d3eb0c5eb . 2f7a1ebf1 . 90baf1b6b . e5084c208 . 391a440af . 70a4532a3 . eca1daace . 9efa52eb7 . 0cdc54bcf . a79a2f1c3 . de1205f66 . 063d9e09a . ec3f66877 . 324c7d1cc . 1244801b1 . 58196cec7 . 2363d1935 . ccc362050 . 5c98c31b0 . c6be2b83a . 8f79526f0 . 1ef7c78d7 . f913ffa5e . 7db6d0835 Merge pull request #295 from cleeus/fix-pnm-heap-overflows 4f184f89f Fix multiple heap buffer overflows 580d74777 . 755cf717a . ce329c07f . 33824c014 . 9978daaaf . f37b255ca . 1222eea73 . b8a7af571 Merge pull request #282 from Chuvi-w/FIX_VTK 96e5c9e14 Fix syntax error in vtk.h ea2b86fef . 833b1a589 . 654d46278 . 15d25b190 . d6955b5e9 . 3f2b7a3a7 . 612044515 . 6f3cacdc3 . 94f6b51e5 . e0763f2fd . 8f0dcc789 . d069d8048 . d501aa3a0 . 9bcfc5b8c . 3a6cd9df0 . 46def454c Merge pull request #263 from UlysseV/MC_improvement 16f2496b6 change func call pattern for isoline3D d577a6b28 change func call pattern f71695057 . fffee0ae0 . c15123bff . d0257a2f9 . 01edd73e1 . bb02b35ea . 92b407d53 . b26716f3b Merge branch 'master' of github.com:dtschump/CImg bc2446460 . a93c51b98 . ecc8b7337 . c3960f08f . f77588f32 Merge pull request #253 from dtschump/develop git-subtree-dir: external/CImg git-subtree-split: 4d061dcd67c08e9a36a01875e78b53ee86501dd7 --- .github/workflows/Test_Build.yml | 37 + CImg.h | 9246 +++++++++++++++++++----------- README.md | 9 +- examples/CMakeLists.txt | 27 +- examples/Makefile | 6 +- examples/jawbreaker.cpp | 3 + html/CImg_documentation.h | 22 +- html/download.html | 4 +- html/header.html | 4 +- html/header_doxygen.html | 4 +- html/img/logoCImg0.png | Bin 0 -> 512718 bytes html/img/logo_header.jpg | Bin 73325 -> 45033 bytes html/img/logo_header.xcf | Bin 0 -> 210432 bytes html/img/logo_header_old.jpg | Bin 0 -> 73325 bytes html/img/postcard75.jpg | Bin 0 -> 223327 bytes html/img/postcard76.jpg | Bin 0 -> 218198 bytes html/img/postcard77.jpg | Bin 0 -> 56186 bytes html/img/postcard78.jpg | Bin 0 -> 81879 bytes html/img/postcard79.jpg | Bin 0 -> 36975 bytes html/img/postcard80.jpg | Bin 0 -> 50820 bytes html/index.html | 25 +- html/screenshots.html | 54 +- plugins/cvMat.h | 54 +- plugins/tiff_stream.h | 2 +- resources/cimg_buildpackage | 10 +- resources/cimg_ftp | 9 +- 26 files changed, 5925 insertions(+), 3591 deletions(-) create mode 100644 .github/workflows/Test_Build.yml create mode 100644 html/img/logoCImg0.png create mode 100644 html/img/logo_header.xcf create mode 100644 html/img/logo_header_old.jpg create mode 100644 html/img/postcard75.jpg create mode 100644 html/img/postcard76.jpg create mode 100644 html/img/postcard77.jpg create mode 100644 html/img/postcard78.jpg create mode 100644 html/img/postcard79.jpg create mode 100644 html/img/postcard80.jpg diff --git a/.github/workflows/Test_Build.yml b/.github/workflows/Test_Build.yml new file mode 100644 index 000000000..77bc8a2c4 --- /dev/null +++ b/.github/workflows/Test_Build.yml @@ -0,0 +1,37 @@ +name: Build then test + +on: + push: + branches: [ "master" ] + pull_request: + branches: [ "master" ] + +jobs: + build-on-ubuntu: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Install dependencies + run: | + sudo apt-get install -y gcc g++ clang libpng-dev libjpeg-dev libmagick++-dev + sudo apt-get install -y libgraphicsmagick++-dev libfftw3-dev zlib1g-dev libheif-dev + - name: build + run: | + pushd examples + make clean + make mlinux + popd + + build-on-macos: + runs-on: macos-latest + steps: + - uses: actions/checkout@v3 + - name: Install dependencies + run: | + brew install libheif libpng fftw libjpeg gcc zlib imagemagick automake openexr llvm + - name: build + run: | + pushd examples + make clean + make mmacos + popd diff --git a/CImg.h b/CImg.h index a8b893a37..9ac9175b0 100644 --- a/CImg.h +++ b/CImg.h @@ -54,7 +54,7 @@ // Set version number of the library. #ifndef cimg_version -#define cimg_version 297 +#define cimg_version 320 /*----------------------------------------------------------- # @@ -148,19 +148,16 @@ // Define correct string functions for each compiler and OS. #if cimg_OS==2 && defined(_MSC_VER) #define cimg_sscanf std::sscanf -#define cimg_sprintf std::sprintf #define cimg_snprintf cimg::_snprintf #define cimg_vsnprintf cimg::_vsnprintf #else #include #if defined(__MACOSX__) || defined(__APPLE__) #define cimg_sscanf cimg::_sscanf -#define cimg_sprintf cimg::_sprintf #define cimg_snprintf cimg::_snprintf #define cimg_vsnprintf cimg::_vsnprintf #else #define cimg_sscanf std::sscanf -#define cimg_sprintf std::sprintf #define cimg_snprintf snprintf #define cimg_vsnprintf vsnprintf #endif @@ -211,8 +208,21 @@ enum {FALSE_WIN = 0}; #define cimg_pragma(x) _Pragma(#x) #endif -// Define own types 'cimg_long/ulong' and 'cimg_int64/uint64' to ensure portability. -// ( constrained to 'sizeof(cimg_ulong/cimg_long) = sizeof(void*)' and 'sizeof(cimg_int64/cimg_uint64)=8' ). +// Define own datatypes to ensure portability. +// ( 'sizeof(cimg_ulong/cimg_long) = sizeof(void*)' ). +#define cimg_uint8 unsigned char +#if defined(CHAR_MAX) && CHAR_MAX==255 +#define cimg_int8 signed char +#else +#define cimg_int8 char +#endif +#define cimg_uint16 unsigned short +#define cimg_int16 short +#define cimg_uint32 unsigned int +#define cimg_int32 int +#define cimg_float32 float +#define cimg_float64 double + #if cimg_OS==2 #define cimg_uint64 unsigned __int64 @@ -251,6 +261,14 @@ enum {FALSE_WIN = 0}; #endif +#ifndef cimg_max_buf_size +#if UINTPTR_MAX==0xffffffff +#define cimg_max_buf_size ((cimg_ulong)3*1024*1024*1024) +#else +#define cimg_max_buf_size ((cimg_ulong)16*1024*1024*1024) +#endif +#endif + // Configure filename separator. // // Filename separator is set by default to '/', except for Windows where it is '\'. @@ -297,6 +315,9 @@ enum {FALSE_WIN = 0}; #else #define cimg_use_openmp 0 #endif +#else +#undef cimg_use_openmp +#define cimg_use_openmp 1 #endif #if cimg_use_openmp!=0 #include @@ -315,18 +336,20 @@ enum {FALSE_WIN = 0}; // Define abort macros to be used with OpenMP. #ifndef _cimg_abort_init_openmp -#define _cimg_abort_init_openmp bool _cimg_abort_go_openmp = true; cimg::unused(_cimg_abort_go_openmp) +#define _cimg_abort_init_openmp unsigned int _cimg_abort_go_openmp = 1; cimg::unused(_cimg_abort_go_openmp) #endif #ifndef _cimg_abort_try_openmp #define _cimg_abort_try_openmp if (_cimg_abort_go_openmp) try #endif #ifndef _cimg_abort_catch_openmp -#define _cimg_abort_catch_openmp catch (CImgAbortException&) { cimg_pragma(omp atomic) _cimg_abort_go_openmp&=false; } +#define _cimg_abort_catch_openmp catch (CImgAbortException&) { \ + cimg_pragma_openmp(atomic) _cimg_abort_go_openmp&=0; \ +} #endif #ifndef _cimg_abort_catch_fill_openmp #define _cimg_abort_catch_fill_openmp \ - catch (CImgException& e) { cimg_pragma(omp critical(abort)) CImg::string(e._message).move_to(is_error); \ - cimg_pragma(omp atomic) _cimg_abort_go_openmp&=false; } + catch (CImgException& e) { cimg_pragma(omp critical(abort)) CImg::string(e._message).move_to(is_error_expr); \ + cimg_pragma_openmp(atomic) _cimg_abort_go_openmp&=0; } #endif #ifdef cimg_abort_test2 #ifndef _cimg_abort_try_openmp2 @@ -648,18 +671,6 @@ extern "C" { #define _cimg_redefine_PI #endif -// Define 'cimg_library' namespace suffix. -// -// You may want to add a suffix to the 'cimg_library' namespace, for instance if you need to work -// with several versions of the library at the same time. -#ifdef cimg_namespace_suffix -#define __cimg_library_suffixed(s) cimg_library_##s -#define _cimg_library_suffixed(s) __cimg_library_suffixed(s) -#define cimg_library_suffixed _cimg_library_suffixed(cimg_namespace_suffix) -#else -#define cimg_library_suffixed cimg_library -#endif - /*------------------------------------------------------------------------------ # # Define user-friendly macros. @@ -670,9 +681,9 @@ extern "C" { ------------------------------------------------------------------------------*/ // Macros to define program usage, and retrieve command line arguments. -#define cimg_usage(usage) cimg_library_suffixed::cimg::option((char*)0,argc,argv,(char*)0,usage,false) -#define cimg_help(str) cimg_library_suffixed::cimg::option((char*)0,argc,argv,str,(char*)0) -#define cimg_option(name,_default,usage) cimg_library_suffixed::cimg::option(name,argc,argv,_default,usage) +#define cimg_usage(usage) cimg_library::cimg::option((char*)0,argc,argv,(char*)0,usage,false) +#define cimg_help(str) cimg_library::cimg::option((char*)0,argc,argv,str,(char*)0) +#define cimg_option(name,_default,usage) cimg_library::cimg::option(name,argc,argv,_default,usage) // Macros to define and manipulate local neighborhoods. #define CImg_2x2(I,T) T I[4]; \ @@ -2292,7 +2303,7 @@ extern "C" { \endcode to simplify the declaration of \CImg Library objects afterwards. **/ -namespace cimg_library_suffixed { +namespace cimg_library { // Declare the four classes of the CImg Library. template struct CImg; @@ -2376,7 +2387,7 @@ namespace cimg_library_suffixed { return result; } - // Mutex-protected version of sscanf, sprintf and snprintf. + // Mutex-protected version of sscanf, snprintf and vnsprintf. // Used only MacOSX, as it seems those functions are not re-entrant on MacOSX. #elif defined(__MACOSX__) || defined(__APPLE__) inline int _sscanf(const char *const s, const char *const format, ...) { @@ -2389,16 +2400,6 @@ namespace cimg_library_suffixed { return result; } - inline int _sprintf(char *const s, const char *const format, ...) { - cimg::mutex(6); - va_list args; - va_start(args,format); - const int result = std::vsprintf(s,format,args); - va_end(args); - cimg::mutex(6,0); - return result; - } - inline int _snprintf(char *const s, const size_t n, const char *const format, ...) { cimg::mutex(6); va_list args; @@ -2551,7 +2552,7 @@ namespace cimg_library_suffixed { In all cases, when an error occurs in \CImg, an instance of the corresponding exception class is thrown. This may lead the program to break (this is the default behavior), but you can bypass this behavior by handling the exceptions by yourself, - using a usual try { ... } catch () { ... } bloc, as in the following example: + using a usual try { ... } catch () { ... } block, as in the following example: \code #define "CImg.h" using namespace cimg_library; @@ -2573,16 +2574,16 @@ namespace cimg_library_suffixed { int size = cimg_vsnprintf(0,0,format,ap2); \ if (size++>=0) { \ delete[] _message; \ - _message = new char[size]; \ - cimg_vsnprintf(_message,size,format,ap); \ + _message = new char[(size_t)size]; \ + cimg_vsnprintf(_message,(size_t)size,format,ap); \ if (cimg::exception_mode()) { \ std::fprintf(cimg::output(),"\n%s[CImg] *** %s ***%s %s\n",cimg::t_red,etype,cimg::t_normal,_message); \ if (cimg_display && disp_flag && !(cimg::exception_mode()%2)) try { cimg::dialog(etype,_message,"Abort"); } \ catch (CImgException&) {} \ - if (cimg::exception_mode()>=3) cimg_library_suffixed::cimg::info(); \ + if (cimg::exception_mode()>=3) cimg_library::cimg::info(); \ } \ } \ - va_end(ap); va_end(ap2); \ + va_end(ap); va_end(ap2); char *_message; CImgException() { _message = new char[1]; *_message = 0; } @@ -2699,7 +2700,10 @@ namespace cimg_library_suffixed { }; template<> struct type { - static const char* string() { static const char *const s = "bool"; return s; } + static const char* string() { + static const char *const s = "bool"; + return s; + } static bool is_float() { return false; } static bool is_inf(const bool) { return false; } static bool is_nan(const bool) { return false; } @@ -2715,7 +2719,7 @@ namespace cimg_library_suffixed { }; template<> struct type { - static const char* string() { static const char *const s = "unsigned char"; return s; } + static const char* string() { static const char *const s = "uint8"; return s; } static bool is_float() { return false; } static bool is_inf(const unsigned char) { return false; } static bool is_nan(const unsigned char) { return false; } @@ -2732,7 +2736,7 @@ namespace cimg_library_suffixed { #if defined(CHAR_MAX) && CHAR_MAX==255 template<> struct type { - static const char* string() { static const char *const s = "char"; return s; } + static const char* string() { static const char *const s = "uint8"; return s; } static bool is_float() { return false; } static bool is_inf(const char) { return false; } static bool is_nan(const char) { return false; } @@ -2748,7 +2752,7 @@ namespace cimg_library_suffixed { }; #else template<> struct type { - static const char* string() { static const char *const s = "char"; return s; } + static const char* string() { static const char *const s = "int8"; return s; } static bool is_float() { return false; } static bool is_inf(const char) { return false; } static bool is_nan(const char) { return false; } @@ -2764,7 +2768,7 @@ namespace cimg_library_suffixed { #endif template<> struct type { - static const char* string() { static const char *const s = "signed char"; return s; } + static const char* string() { static const char *const s = "int8"; return s; } static bool is_float() { return false; } static bool is_inf(const signed char) { return false; } static bool is_nan(const signed char) { return false; } @@ -2780,7 +2784,7 @@ namespace cimg_library_suffixed { }; template<> struct type { - static const char* string() { static const char *const s = "unsigned short"; return s; } + static const char* string() { static const char *const s = "uint16"; return s; } static bool is_float() { return false; } static bool is_inf(const unsigned short) { return false; } static bool is_nan(const unsigned short) { return false; } @@ -2796,7 +2800,7 @@ namespace cimg_library_suffixed { }; template<> struct type { - static const char* string() { static const char *const s = "short"; return s; } + static const char* string() { static const char *const s = "int16"; return s; } static bool is_float() { return false; } static bool is_inf(const short) { return false; } static bool is_nan(const short) { return false; } @@ -2811,7 +2815,7 @@ namespace cimg_library_suffixed { }; template<> struct type { - static const char* string() { static const char *const s = "unsigned int"; return s; } + static const char* string() { static const char *const s = "uint32"; return s; } static bool is_float() { return false; } static bool is_inf(const unsigned int) { return false; } static bool is_nan(const unsigned int) { return false; } @@ -2827,13 +2831,13 @@ namespace cimg_library_suffixed { }; template<> struct type { - static const char* string() { static const char *const s = "int"; return s; } + static const char* string() { static const char *const s = "int32"; return s; } static bool is_float() { return false; } static bool is_inf(const int) { return false; } static bool is_nan(const int) { return false; } static bool is_finite(const int) { return true; } static int min() { return ~max(); } - static int max() { return (int)((unsigned int)-1>>1); } + static int max() { return (int)(~0U>>1); } static int inf() { return max(); } static int cut(const double val) { return val<(double)min()?min():val>(double)max()?max():(int)val; } static const char* format() { return "%d"; } @@ -2842,7 +2846,7 @@ namespace cimg_library_suffixed { }; template<> struct type { - static const char* string() { static const char *const s = "unsigned int64"; return s; } + static const char* string() { static const char *const s = "uint64"; return s; } static bool is_float() { return false; } static bool is_inf(const cimg_uint64) { return false; } static bool is_nan(const cimg_uint64) { return false; } @@ -2854,7 +2858,7 @@ namespace cimg_library_suffixed { return val<(double)min()?min():val>(double)max()?max():(cimg_uint64)val; } static const char* format() { return cimg_fuint64; } static const char* format_s() { return cimg_fuint64; } - static unsigned long format(const cimg_uint64 val) { return (unsigned long)val; } + static cimg_uint64 format(const cimg_uint64 val) { return val; } }; template<> struct type { @@ -2875,7 +2879,7 @@ namespace cimg_library_suffixed { }; template<> struct type { - static const char* string() { static const char *const s = "double"; return s; } + static const char* string() { static const char *const s = "float64"; return s; } static bool is_float() { return true; } static bool is_inf(const double val) { #ifdef isinf @@ -2926,7 +2930,7 @@ namespace cimg_library_suffixed { }; template<> struct type { - static const char* string() { static const char *const s = "float"; return s; } + static const char* string() { static const char *const s = "float32"; return s; } static bool is_float() { return true; } static bool is_inf(const float val) { #ifdef isinf @@ -2966,7 +2970,7 @@ namespace cimg_library_suffixed { }; template<> struct type { - static const char* string() { static const char *const s = "long double"; return s; } + static const char* string() { static const char *const s = "float128"; return s; } static bool is_float() { return true; } static bool is_inf(const long double val) { #ifdef isinf @@ -3001,7 +3005,7 @@ namespace cimg_library_suffixed { #ifdef cimg_use_half template<> struct type { - static const char* string() { static const char *const s = "half"; return s; } + static const char* string() { static const char *const s = "float16"; return s; } static bool is_float() { return true; } static bool is_inf(const long double val) { #ifdef isinf @@ -5715,6 +5719,7 @@ namespace cimg_library_suffixed { #ifdef cimg_no_system_calls return -1; #else + if (is_verbose) return std::system(command); #if cimg_OS==1 const unsigned int l = (unsigned int)std::strlen(command); @@ -6208,6 +6213,18 @@ namespace cimg_library_suffixed { return val*val; } + // Return inverse of error function. + template + inline T erfinv(const T& val) { + const T + sgn = val<0?-1:1, + x = (1 - val)*(1 + val), + lnx = std::log(x), + tt1 = (T)(2/(cimg::PI*0.147) + 0.5*lnx), + tt2 = lnx/(T)0.147; + return sgn*std::sqrt(-tt1 + std::sqrt(tt1*tt1 - tt2)); + } + //! Return cubic root of a value. template inline double cbrt(const T& x) { @@ -6295,18 +6312,22 @@ namespace cimg_library_suffixed { **/ template inline T mod(const T& x, const T& m) { + if (!m) throw CImgArgumentException("cimg::mod(): Specified modulo value is 0."); const double dx = (double)x, dm = (double)m; if (!cimg::type::is_finite(dm)) return x; if (cimg::type::is_finite(dx)) return (T)(dx - dm * std::floor(dx / dm)); return (T)0; } inline int mod(const bool x, const bool m) { - return m?(x?1:0):0; + if (!m) throw CImgArgumentException("cimg::mod(): Specified modulo value is 0."); + return x?1:0; } inline int mod(const unsigned char x, const unsigned char m) { + if (!m) throw CImgArgumentException("cimg::mod(): Specified modulo value is 0."); return x%m; } inline int mod(const char x, const char m) { + if (!m) throw CImgArgumentException("cimg::mod(): Specified modulo value is 0."); #if defined(CHAR_MAX) && CHAR_MAX==255 return x%m; #else @@ -6314,22 +6335,28 @@ namespace cimg_library_suffixed { #endif } inline int mod(const unsigned short x, const unsigned short m) { - return x%m; + if (!m) throw CImgArgumentException("cimg::mod(): Specified modulo value is 0."); + return (int)(x%m); } inline int mod(const short x, const short m) { - return x>=0?x%m:(x%m?m + x%m:0); + if (!m) throw CImgArgumentException("cimg::mod(): Specified modulo value is 0."); + return (int)(x>=0?x%m:(x%m?m + x%m:0)); } inline int mod(const unsigned int x, const unsigned int m) { + if (!m) throw CImgArgumentException("cimg::mod(): Specified modulo value is 0."); return (int)(x%m); } inline int mod(const int x, const int m) { - return x>=0?x%m:(x%m?m + x%m:0); + if (!m) throw CImgArgumentException("cimg::mod(): Specified modulo value is 0."); + return (int)(x>=0?x%m:(x%m?m + x%m:0)); } inline cimg_int64 mod(const cimg_uint64 x, const cimg_uint64 m) { - return x%m; + if (!m) throw CImgArgumentException("cimg::mod(): Specified modulo value is 0."); + return (cimg_int64)(x%m); } inline cimg_int64 mod(const cimg_int64 x, const cimg_int64 m) { - return x>=0?x%m:(x%m?m + x%m:0); + if (!m) throw CImgArgumentException("cimg::mod(): Specified modulo value is 0."); + return (cimg_int64)(x>=0?x%m:(x%m?m + x%m:0)); } //! Return the min-mod of two values. @@ -6847,7 +6874,20 @@ namespace cimg_library_suffixed { //! Return \c true if input character is blank (space, tab, or non-printable character). inline bool is_blank(const char c) { - return c>=0 && (unsigned char)c<=' '; + return (unsigned char)c<=' '; + } + + // Return \c true if specified argument is in set \c [a-zA-Z0-9_]. + inline bool is_varchar(const char c) { + return (c>='a' && c<='z') || (c>='A' && c<='Z') || (c>='0' && c<='9') || c=='_'; + } + + //! Return \c true if argument \p str can be considered as a regular variable name. + inline bool is_varname(const char *const str, const unsigned int length=~0U) { + if (*str>='0' && *str<='9') return false; + for (unsigned int l = 0; l0?x/y:0; } - //! Compare the first \p l characters of two C-strings, ignoring the case. + //! Compare the first \p length characters of two C-strings, ignoring the case. /** \param str1 C-string. \param str2 C-string. - \param l Number of characters to compare. + \param length Number of characters to compare. \return \c 0 if the two strings are equal, something else otherwise. \note This function has to be defined since it is not provided by all C++-compilers (not ANSI). **/ - inline int strncasecmp(const char *const str1, const char *const str2, const int l) { - if (!l) return 0; + inline int strncasecmp(const char *const str1, const char *const str2, const int length) { + if (!length) return 0; if (!str1) return str2?-1:0; const char *nstr1 = str1, *nstr2 = str2; - int k, diff = 0; for (k = 0; k='0' && *ns<='7') (val<<=3)|=*(ns++) - '0'; if (*ns>='0' && *ns<='7') (val<<=3)|=*(ns++) - '0'; *nd = (char)val; @@ -7021,13 +7062,13 @@ namespace cimg_library_suffixed { case 'x' : { char c = lowercase(*(++ns)); if ((c>='0' && c<='9') || (c>='a' && c<='f')) { - val = (c<='9'?c - '0':c - 'a' + 10); + val = (unsigned char)(c<='9'?c - '0':c - 'a' + 10); c = lowercase(*(++ns)); if ((c>='0' && c<='9') || (c>='a' && c<='f')) { (val<<=4)|=(c<='9'?c - '0':c - 'a' + 10); ++ns; } - *nd = val; + *nd = (char)val; } else *nd = c; } break; case 'u' : { // UTF-8 BMP @@ -7429,6 +7470,11 @@ namespace cimg_library_suffixed { // Get/set path to the \c wget binary. inline const char *wget_path(const char *const user_path=0, const bool reinit_path=false); +#if cimg_OS==2 + // Get/set path to the \c powershell binary. + inline const char *powershell_path(const char *const user_path=0, const bool reinit_path=false); +#endif + //! Split filename into two C-strings \c body and \c extension. /** filename and body must not overlap! @@ -7534,7 +7580,7 @@ namespace cimg_library_suffixed { // Load file from network as a local temporary file. inline char *load_network(const char *const url, char *const filename_local, const unsigned int timeout=0, const bool try_fallback=false, - const char *const referer=0); + const char *const referer=0, const char *const user_agent=0); //! Return options specified on the command line. inline const char* option(const char *const name, const int argc, const char *const *const argv, @@ -7829,6 +7875,13 @@ namespace cimg_library_suffixed { cimg::t_bold, tmp, cimg::t_normal); +#if cimg_OS==2 + cimg_snprintf(tmp,1024,"\"%.1020s\"",cimg::powershell_path()); + std::fprintf(cimg::output()," > Path of 'powershell_path': %s%-13s%s\n", + cimg::t_bold, + tmp, + cimg::t_normal); +#endif std::fprintf(cimg::output(),"\n"); delete[] tmp; @@ -8013,13 +8066,8 @@ namespace cimg_library_suffixed { } template - inline CImg<_cimg_Tfloat> invert(const CImg& instance, const bool use_LU=true) { - return instance.get_invert(use_LU); - } - - template - inline CImg<_cimg_Tfloat> pseudoinvert(const CImg& instance, const bool use_LU=false) { - return instance.get_pseudoinvert(use_LU); + inline CImg<_cimg_Tfloat> invert(const CImg& instance, const bool use_LU=false, const float lambda=0) { + return instance.get_invert(use_LU,lambda); } #define _cimg_create_pointwise_function(name) \ @@ -8030,6 +8078,7 @@ namespace cimg_library_suffixed { _cimg_create_pointwise_function(sqr) _cimg_create_pointwise_function(sqrt) + _cimg_create_pointwise_function(erf) _cimg_create_pointwise_function(exp) _cimg_create_pointwise_function(log) _cimg_create_pointwise_function(log2) @@ -8439,6 +8488,11 @@ namespace cimg_library_suffixed { return _is_closed; } + //! Return \c true if display is visible (i.e. not closed by the user), \c false otherwise. + bool is_visible() const { + return !is_closed(); + } + //! Return \c true if associated window has been resized on the screen, \c false otherwise. /** **/ @@ -10318,7 +10372,7 @@ namespace cimg_library_suffixed { if (is_empty()) return *this; Display *const dpy = cimg::X11_attr().display; cimg_lock_display(); - static const char pix_data[8] = { 0 }; + static const char pix_data[8] = {}; XColor col; col.red = col.green = col.blue = 0; Pixmap pix = XCreateBitmapFromData(dpy,_window,pix_data,8,8); @@ -10579,7 +10633,7 @@ namespace cimg_library_suffixed { } } else { if (_normalization==3) { - if (cimg::type::is_float()) _min = (float)img.min_max(_max); + if (sizeof(T)>1 && cimg::type::string()!=cimg::type::string()) _min = (float)img.min_max(_max); else { _min = (float)cimg::type::min(); _max = (float)cimg::type::max(); } } else if ((_min>_max) || _normalization==1) _min = (float)img.min_max(_max); const float delta = _max - _min, mm = 255/(delta?delta:1.f); @@ -11052,8 +11106,8 @@ namespace cimg_library_suffixed { const int border1 = (int)((rect.right - rect.left + 1 - disp->_width)/2), border2 = (int)(rect.bottom - rect.top + 1 - disp->_height - border1), - ww = disp->_width + 2*border1, - wh = disp->_height + border1 + border2, + ww = disp->width() + 2*border1, + wh = disp->height() + border1 + border2, sw = CImgDisplay::screen_width(), sh = CImgDisplay::screen_height(); int @@ -11064,7 +11118,7 @@ namespace cimg_library_suffixed { if (wx<0) wx = 0; if (wy<0) wy = 0; disp->_window = CreateWindowA("MDICLIENT",title?title:" ", - WS_OVERLAPPEDWINDOW | (disp->_is_closed?0:WS_VISIBLE), + (DWORD)(WS_OVERLAPPEDWINDOW | (disp->_is_closed?0:WS_VISIBLE)), wx,wy,ww,wh,0,0,0,&(disp->_ccs)); if (!disp->_is_closed) { GetWindowRect(disp->_window,&rect); @@ -11076,10 +11130,10 @@ namespace cimg_library_suffixed { sx = (unsigned int)screen_width(), sy = (unsigned int)screen_height(); disp->_window = CreateWindowA("MDICLIENT",title?title:" ", - WS_POPUP | (disp->_is_closed?0:WS_VISIBLE), - (sx - disp->_width)/2, - (sy - disp->_height)/2, - disp->_width,disp->_height,0,0,0,&(disp->_ccs)); + (DWORD)(WS_POPUP | (disp->_is_closed?0:WS_VISIBLE)), + (int)(sx - disp->_width)/2, + (int)(sy - disp->_height)/2, + disp->width(),disp->height(),0,0,0,&(disp->_ccs)); disp->_window_x = disp->_window_y = 0; } SetForegroundWindow(disp->_window); @@ -11116,7 +11170,7 @@ namespace cimg_library_suffixed { _background_window = 0; if (!_is_fullscreen || _is_closed) _curr_mode.dmSize = 0; else { - DEVMODE mode; +/* DEVMODE mode; unsigned int imode = 0, ibest = 0, bestbpp = 0, bw = ~0U, bh = ~0U; for (mode.dmSize = sizeof(DEVMODE), mode.dmDriverExtra = 0; EnumDisplaySettings(0,imode,&mode); ++imode) { const unsigned int nw = mode.dmPelsWidth, nh = mode.dmPelsHeight; @@ -11132,13 +11186,15 @@ namespace cimg_library_suffixed { EnumDisplaySettings(0,ibest,&mode); ChangeDisplaySettings(&mode,0); } else _curr_mode.dmSize = 0; - +*/ + _curr_mode.dmSize = 0; const unsigned int sx = (unsigned int)screen_width(), sy = (unsigned int)screen_height(); if (sx!=_width || sy!=_height) { CLIENTCREATESTRUCT background_ccs = { 0,0 }; - _background_window = CreateWindowA("MDICLIENT","",WS_POPUP | WS_VISIBLE, 0,0,sx,sy,0,0,0,&background_ccs); + _background_window = CreateWindowA("MDICLIENT","",WS_POPUP | WS_VISIBLE, + 0,0,(int)sx,(int)sy,0,0,0,&background_ccs); SetForegroundWindow(_background_window); } } @@ -11255,7 +11311,7 @@ namespace cimg_library_suffixed { CImgDisplay& resize(const int nwidth, const int nheight, const bool force_redraw=true) { if (!nwidth || !nheight || (is_empty() && (nwidth<0 || nheight<0))) return assign(); - if (is_empty()) return assign(nwidth,nheight); + if (is_empty()) return assign((unsigned int)nwidth,(unsigned int)nheight); const unsigned int tmpdimx = (nwidth>0)?nwidth:(-nwidth*_width/100), tmpdimy = (nheight>0)?nheight:(-nheight*_height/100), @@ -11749,7 +11805,14 @@ namespace cimg_library_suffixed { if ((dy==1 || (siz*=dy)>osiz) && ((osiz = siz), dz==1 || (siz*=dz)>osiz) && ((osiz = siz), dc==1 || (siz*=dc)>osiz) && - ((osiz = siz), sizeof(T)==1 || (siz*sizeof(T))>osiz)) return siz; + ((osiz = siz), sizeof(T)==1 || (siz*sizeof(T))>osiz)) { + if (siz > cimg_max_buf_size){ + throw CImgArgumentException("CImg<%s>::safe_size(): Specified size (%u,%u,%u,%u) exceeds maximum " + "allowed buffer size of %lu ", + pixel_type(),dx,dy,dz,dc,cimg_max_buf_size); + } + return siz; + } throw CImgArgumentException("CImg<%s>::safe_size(): Specified size (%u,%u,%u,%u) overflows 'size_t'.", pixel_type(),dx,dy,dz,dc); } @@ -12150,7 +12213,7 @@ namespace cimg_library_suffixed { (e.g. already deallocated). \par Example \code - unsigned char tab[256*256] = { 0 }; + unsigned char tab[256*256] = {}; CImg img1(tab,256,256,1,1,false), // Construct new non-shared image from buffer 'tab' img2(tab,256,256,1,1,true); // Construct new shared-image from buffer 'tab' tab[1024] = 255; // Here, 'img2' is indirectly modified, but not 'img1' @@ -12211,7 +12274,7 @@ namespace cimg_library_suffixed { const char *const axes_order):_data(0),_is_shared(false) { const size_t siz = safe_size(size_x,size_y,size_z,size_c); if (values && siz) { - unsigned char s_code[4] = { 0,1,2,3 }, n_code[4] = { 0 }; + unsigned char s_code[4] = { 0,1,2,3 }, n_code[4] = {}; for (unsigned int l = 0; axes_order[l]; ++l) { int c = cimg::lowercase(axes_order[l]); if (l>=4 || (c!='x' && c!='y' && c!='z' && c!='c')) { *s_code = 4; break; } @@ -13719,7 +13782,7 @@ namespace cimg_library_suffixed { template CImg& operator&=(const t value) { if (is_empty()) return *this; - cimg_openmp_for(*this,(ulongT)*ptr & (ulongT)value,32768); + cimg_openmp_for(*this,(longT)*ptr & (longT)value,32768); return *this; } @@ -13743,8 +13806,8 @@ namespace cimg_library_suffixed { T *ptrd = _data, *const ptre = _data + siz; if (siz>isiz) for (ulongT n = siz/isiz; n; --n) for (const t *ptrs = img._data, *ptrs_end = ptrs + isiz; ptrs CImg& operator|=(const t value) { if (is_empty()) return *this; - cimg_openmp_for(*this,(ulongT)*ptr | (ulongT)value,32768); + cimg_openmp_for(*this,(longT)*ptr | (longT)value,32768); return *this; } @@ -13809,8 +13872,8 @@ namespace cimg_library_suffixed { T *ptrd = _data, *const ptre = _data + siz; if (siz>isiz) for (ulongT n = siz/isiz; n; --n) for (const t *ptrs = img._data, *ptrs_end = ptrs + isiz; ptrs CImg& operator^=(const t value) { if (is_empty()) return *this; - cimg_openmp_for(*this,(ulongT)*ptr ^ (ulongT)value,32768); + cimg_openmp_for(*this,(longT)*ptr ^ (longT)value,32768); return *this; } @@ -13881,8 +13944,8 @@ namespace cimg_library_suffixed { T *ptrd = _data, *const ptre = _data + siz; if (siz>isiz) for (ulongT n = siz/isiz; n; --n) for (const t *ptrs = img._data, *ptrs_end = ptrs + isiz; ptrs"unknown" is returned. **/ static const char* pixel_type() { @@ -16406,7 +16469,8 @@ namespace cimg_library_suffixed { \param colors List of colors of the 3D object. \param opacities List (or image) of opacities of the 3D object. \param full_check Tells if full checking of the 3D object must be performed. - \param[out] error_message C-string to contain the error message, if the test does not succeed. + \param[out] error_message C-string to contain the error message, if the test does not succeed + (at least 256 bytes). \note - Set \c full_checking to \c false to speed-up the 3D object checking. In this case, only the size of each 3D object component is checked. @@ -16423,7 +16487,7 @@ namespace cimg_library_suffixed { // Check consistency for the particular case of an empty 3D object. if (is_empty()) { if (primitives || colors || opacities) { - if (error_message) cimg_sprintf(error_message, + if (error_message) cimg_snprintf(error_message,256, "3D object (%u,%u) defines no vertices but %u primitives, " "%u colors and %lu opacities", _width,primitives._width,primitives._width, @@ -16435,19 +16499,19 @@ namespace cimg_library_suffixed { // Check consistency of vertices. if (_height!=3 || _depth>1 || _spectrum>1) { // Check vertices dimensions - if (error_message) cimg_sprintf(error_message, + if (error_message) cimg_snprintf(error_message,256, "3D object (%u,%u) has invalid vertex dimensions (%u,%u,%u,%u)", _width,primitives._width,_width,_height,_depth,_spectrum); return false; } if (colors._width>primitives._width + 1) { - if (error_message) cimg_sprintf(error_message, + if (error_message) cimg_snprintf(error_message,256, "3D object (%u,%u) defines %u colors", _width,primitives._width,colors._width); return false; } if (opacities.size()>primitives._width) { - if (error_message) cimg_sprintf(error_message, + if (error_message) cimg_snprintf(error_message,256, "3D object (%u,%u) defines %lu opacities", _width,primitives._width,(unsigned long)opacities.size()); return false; @@ -16462,7 +16526,7 @@ namespace cimg_library_suffixed { case 1 : { // Point const unsigned int i0 = (unsigned int)primitive(0); if (i0>=_width) { - if (error_message) cimg_sprintf(error_message, + if (error_message) cimg_snprintf(error_message,256, "3D object (%u,%u) refers to invalid vertex index %u in " "point primitive [%u]", _width,primitives._width,i0,l); @@ -16474,7 +16538,7 @@ namespace cimg_library_suffixed { i0 = (unsigned int)primitive(0), i1 = (unsigned int)primitive(1); if (i0>=_width || i1>=_width) { - if (error_message) cimg_sprintf(error_message, + if (error_message) cimg_snprintf(error_message,256, "3D object (%u,%u) refers to invalid vertex indices (%u,%u) in " "sphere primitive [%u]", _width,primitives._width,i0,i1,l); @@ -16486,7 +16550,7 @@ namespace cimg_library_suffixed { i0 = (unsigned int)primitive(0), i1 = (unsigned int)primitive(1); if (i0>=_width || i1>=_width) { - if (error_message) cimg_sprintf(error_message, + if (error_message) cimg_snprintf(error_message,256, "3D object (%u,%u) refers to invalid vertex indices (%u,%u) in " "segment primitive [%u]", _width,primitives._width,i0,i1,l); @@ -16499,7 +16563,7 @@ namespace cimg_library_suffixed { i1 = (unsigned int)primitive(1), i2 = (unsigned int)primitive(2); if (i0>=_width || i1>=_width || i2>=_width) { - if (error_message) cimg_sprintf(error_message, + if (error_message) cimg_snprintf(error_message,256, "3D object (%u,%u) refers to invalid vertex indices (%u,%u,%u) in " "triangle primitive [%u]", _width,primitives._width,i0,i1,i2,l); @@ -16513,7 +16577,7 @@ namespace cimg_library_suffixed { i2 = (unsigned int)primitive(2), i3 = (unsigned int)primitive(3); if (i0>=_width || i1>=_width || i2>=_width || i3>=_width) { - if (error_message) cimg_sprintf(error_message, + if (error_message) cimg_snprintf(error_message,256, "3D object (%u,%u) refers to invalid vertex indices (%u,%u,%u,%u) in " "quadrangle primitive [%u]", _width,primitives._width,i0,i1,i2,i3,l); @@ -16521,7 +16585,7 @@ namespace cimg_library_suffixed { } } break; default : - if (error_message) cimg_sprintf(error_message, + if (error_message) cimg_snprintf(error_message,256, "3D object (%u,%u) defines an invalid primitive [%u] of size %u", _width,primitives._width,l,(unsigned int)psiz); return false; @@ -16532,7 +16596,7 @@ namespace cimg_library_suffixed { cimglist_for(colors,c) { const CImg& color = colors[c]; if (!color) { - if (error_message) cimg_sprintf(error_message, + if (error_message) cimg_snprintf(error_message,256, "3D object (%u,%u) defines no color for primitive [%u]", _width,primitives._width,c); return false; @@ -16543,7 +16607,7 @@ namespace cimg_library_suffixed { if (colors._width>primitives._width) { const CImg &light = colors.back(); if (!light || light._depth>1) { - if (error_message) cimg_sprintf(error_message, + if (error_message) cimg_snprintf(error_message,256, "3D object (%u,%u) defines an invalid light texture (%u,%u,%u,%u)", _width,primitives._width,light._width, light._height,light._depth,light._spectrum); @@ -16562,14 +16626,14 @@ namespace cimg_library_suffixed { \note - Set \c full_check to \c false to speed-up the 3D object checking. In this case, only the size of each 3D object component is checked. - - Size of the string \c error_message should be at least 128-bytes long, to be able to contain the error message. + - Size of the string \c error_message should be at least 256-bytes long, to be able to contain the error message. **/ bool is_CImg3d(const bool full_check=true, char *const error_message=0) const { if (error_message) *error_message = 0; // Check instance dimension and header. if (_width!=1 || _height<8 || _depth!=1 || _spectrum!=1) { - if (error_message) cimg_sprintf(error_message, + if (error_message) cimg_snprintf(error_message,256, "CImg3d has invalid dimensions (%u,%u,%u,%u)", _width,_height,_depth,_spectrum); return false; @@ -16577,7 +16641,7 @@ namespace cimg_library_suffixed { const T *ptrs = _data, *const ptre = end(); if (!_is_CImg3d(*(ptrs++),'C') || !_is_CImg3d(*(ptrs++),'I') || !_is_CImg3d(*(ptrs++),'m') || !_is_CImg3d(*(ptrs++),'g') || !_is_CImg3d(*(ptrs++),'3') || !_is_CImg3d(*(ptrs++),'d')) { - if (error_message) cimg_sprintf(error_message, + if (error_message) cimg_snprintf(error_message,256, "CImg3d header not found"); return false; } @@ -16589,7 +16653,7 @@ namespace cimg_library_suffixed { if (!full_check) { const ulongT minimal_size = 8UL + 3*nb_points + 6*nb_primitives; if (_data + minimal_size>ptre) { - if (error_message) cimg_sprintf(error_message, + if (error_message) cimg_snprintf(error_message,256, "CImg3d (%u,%u) has only %lu values, while at least %lu values were expected", nb_points,nb_primitives,(unsigned long)size(),(unsigned long)minimal_size); return false; @@ -16599,13 +16663,13 @@ namespace cimg_library_suffixed { // Check consistency of vertex data. if (!nb_points) { if (nb_primitives) { - if (error_message) cimg_sprintf(error_message, + if (error_message) cimg_snprintf(error_message,256, "CImg3d (%u,%u) defines no vertices but %u primitives", nb_points,nb_primitives,nb_primitives); return false; } if (ptrs!=ptre) { - if (error_message) cimg_sprintf(error_message, + if (error_message) cimg_snprintf(error_message,256, "CImg3d (%u,%u) is an empty object but contains %u value%s " "more than expected", nb_points,nb_primitives,(unsigned int)(ptre - ptrs),(ptre - ptrs)>1?"s":""); @@ -16614,7 +16678,7 @@ namespace cimg_library_suffixed { return true; } if (ptrs + 3*nb_points>ptre) { - if (error_message) cimg_sprintf(error_message, + if (error_message) cimg_snprintf(error_message,256, "CImg3d (%u,%u) defines only %u vertices data", nb_points,nb_primitives,(unsigned int)(ptre - ptrs)/3); return false; @@ -16623,7 +16687,7 @@ namespace cimg_library_suffixed { // Check consistency of primitive data. if (ptrs==ptre) { - if (error_message) cimg_sprintf(error_message, + if (error_message) cimg_snprintf(error_message,256, "CImg3d (%u,%u) defines %u vertices but no primitive", nb_points,nb_primitives,nb_points); return false; @@ -16637,7 +16701,7 @@ namespace cimg_library_suffixed { case 1 : { // Point const unsigned int i0 = cimg::float2uint((float)*(ptrs++)); if (i0>=nb_points) { - if (error_message) cimg_sprintf(error_message, + if (error_message) cimg_snprintf(error_message,256, "CImg3d (%u,%u) refers to invalid vertex index %u in point primitive [%u]", nb_points,nb_primitives,i0,p); return false; @@ -16649,7 +16713,7 @@ namespace cimg_library_suffixed { i1 = cimg::float2uint((float)*(ptrs++)); ptrs+=3; if (i0>=nb_points || i1>=nb_points) { - if (error_message) cimg_sprintf(error_message, + if (error_message) cimg_snprintf(error_message,256, "CImg3d (%u,%u) refers to invalid vertex indices (%u,%u) in " "sphere primitive [%u]", nb_points,nb_primitives,i0,i1,p); @@ -16662,7 +16726,7 @@ namespace cimg_library_suffixed { i1 = cimg::float2uint((float)*(ptrs++)); if (nb_inds==6) ptrs+=4; if (i0>=nb_points || i1>=nb_points) { - if (error_message) cimg_sprintf(error_message, + if (error_message) cimg_snprintf(error_message,256, "CImg3d (%u,%u) refers to invalid vertex indices (%u,%u) in " "segment primitive [%u]", nb_points,nb_primitives,i0,i1,p); @@ -16676,7 +16740,7 @@ namespace cimg_library_suffixed { i2 = cimg::float2uint((float)*(ptrs++)); if (nb_inds==9) ptrs+=6; if (i0>=nb_points || i1>=nb_points || i2>=nb_points) { - if (error_message) cimg_sprintf(error_message, + if (error_message) cimg_snprintf(error_message,256, "CImg3d (%u,%u) refers to invalid vertex indices (%u,%u,%u) in " "triangle primitive [%u]", nb_points,nb_primitives,i0,i1,i2,p); @@ -16691,7 +16755,7 @@ namespace cimg_library_suffixed { i3 = cimg::float2uint((float)*(ptrs++)); if (nb_inds==12) ptrs+=8; if (i0>=nb_points || i1>=nb_points || i2>=nb_points || i3>=nb_points) { - if (error_message) cimg_sprintf(error_message, + if (error_message) cimg_snprintf(error_message,256, "CImg3d (%u,%u) refers to invalid vertex indices (%u,%u,%u,%u) in " "quadrangle primitive [%u]", nb_points,nb_primitives,i0,i1,i2,i3,p); @@ -16699,13 +16763,13 @@ namespace cimg_library_suffixed { } } break; default : - if (error_message) cimg_sprintf(error_message, + if (error_message) cimg_snprintf(error_message,256, "CImg3d (%u,%u) defines an invalid primitive [%u] of size %u", nb_points,nb_primitives,p,nb_inds); return false; } if (ptrs>ptre) { - if (error_message) cimg_sprintf(error_message, + if (error_message) cimg_snprintf(error_message,256, "CImg3d (%u,%u) has incomplete primitive data for primitive [%u], " "%u values missing", nb_points,nb_primitives,p,(unsigned int)(ptrs - ptre)); @@ -16715,7 +16779,7 @@ namespace cimg_library_suffixed { // Check consistency of color data. if (ptrs==ptre) { - if (error_message) cimg_sprintf(error_message, + if (error_message) cimg_snprintf(error_message,256, "CImg3d (%u,%u) defines no color/texture data", nb_points,nb_primitives); return false; @@ -16729,7 +16793,7 @@ namespace cimg_library_suffixed { s = (unsigned int)*(ptrs - 1); if (!h && !s) { if (w>=c) { - if (error_message) cimg_sprintf(error_message, + if (error_message) cimg_snprintf(error_message,256, "CImg3d (%u,%u) refers to invalid shared sprite/texture index %u " "for primitive [%u]", nb_points,nb_primitives,w,c); @@ -16738,7 +16802,7 @@ namespace cimg_library_suffixed { } else ptrs+=w*h*s; } if (ptrs>ptre) { - if (error_message) cimg_sprintf(error_message, + if (error_message) cimg_snprintf(error_message,256, "CImg3d (%u,%u) has incomplete color/texture data for primitive [%u], " "%u values missing", nb_points,nb_primitives,c,(unsigned int)(ptrs - ptre)); @@ -16748,7 +16812,7 @@ namespace cimg_library_suffixed { // Check consistency of opacity data. if (ptrs==ptre) { - if (error_message) cimg_sprintf(error_message, + if (error_message) cimg_snprintf(error_message,256, "CImg3d (%u,%u) defines no opacity data", nb_points,nb_primitives); return false; @@ -16761,7 +16825,7 @@ namespace cimg_library_suffixed { s = (unsigned int)*(ptrs - 1); if (!h && !s) { if (w>=o) { - if (error_message) cimg_sprintf(error_message, + if (error_message) cimg_snprintf(error_message,256, "CImg3d (%u,%u) refers to invalid shared opacity index %u " "for primitive [%u]", nb_points,nb_primitives,w,o); @@ -16770,7 +16834,7 @@ namespace cimg_library_suffixed { } else ptrs+=w*h*s; } if (ptrs>ptre) { - if (error_message) cimg_sprintf(error_message, + if (error_message) cimg_snprintf(error_message,256, "CImg3d (%u,%u) has incomplete opacity data for primitive [%u]", nb_points,nb_primitives,o); return false; @@ -16779,7 +16843,7 @@ namespace cimg_library_suffixed { // Check end of data. if (ptrs1?"s":""); return false; @@ -16810,9 +16874,8 @@ namespace cimg_library_suffixed { CImg expr, pexpr; const CImg& imgin; - const CImgList& listin; CImg &imgout; - CImgList& listout; + CImgList& imglist; CImg _img_stats, &img_stats, constcache_vals; CImgList _list_stats, &list_stats, _list_median, &list_median, _list_norm, &list_norm; @@ -16820,34 +16883,33 @@ namespace cimg_library_suffixed { CImg level, variable_pos, reserved_label; CImgList variable_def, macro_def, macro_body; - CImgList macro_body_is_string; char *user_macro; unsigned int mempos, mem_img_median, mem_img_norm, mem_img_index, debug_indent, result_dim, break_type, constcache_size; - bool is_parallelizable, is_end_code, is_fill, need_input_copy; + bool is_parallelizable, is_noncritical_run, is_end_code, is_fill, return_new_comp, need_input_copy; double *result; cimg_uint64 rng; const char *const calling_function, *s_op, *ss_op; typedef double (*mp_func)(_cimg_math_parser&); -#define _cimg_mp_is_constant(arg) (memtype[arg]==1) // Is constant value? #define _cimg_mp_is_scalar(arg) (memtype[arg]<2) // Is scalar value? -#define _cimg_mp_is_comp(arg) (!memtype[arg]) // Is computation value? -#define _cimg_mp_is_variable(arg) (memtype[arg]==-1) // Is scalar variable? +#define _cimg_mp_is_const_scalar(arg) (memtype[arg]==1) // Is const scalar? #define _cimg_mp_is_vector(arg) (memtype[arg]>1) // Is vector? +#define _cimg_mp_is_comp(arg) (!memtype[arg]) // Is computation value? +#define _cimg_mp_is_reserved(arg) (memtype[arg]==-1) // Is scalar and reserved (e.g. variable)? #define _cimg_mp_size(arg) (_cimg_mp_is_scalar(arg)?0U:(unsigned int)memtype[arg] - 1) // Size (0=scalar, N>0=vectorN) #define _cimg_mp_calling_function s_calling_function()._data #define _cimg_mp_op(s) s_op = s; ss_op = ss #define _cimg_mp_check_type(arg,n_arg,mode,N) check_type(arg,n_arg,mode,N,ss,se,saved_char) -#define _cimg_mp_check_constant(arg,n_arg,mode) check_constant(arg,n_arg,mode,ss,se,saved_char) -#define _cimg_mp_check_constant_index(arg) check_constant_index(arg,ss,se,saved_char) +#define _cimg_mp_check_const_scalar(arg,n_arg,mode) check_const_scalar(arg,n_arg,mode,ss,se,saved_char) +#define _cimg_mp_check_const_index(arg) check_const_index(arg,ss,se,saved_char) #define _cimg_mp_check_matrix_square(arg,n_arg) check_matrix_square(arg,n_arg,ss,se,saved_char) -#define _cimg_mp_check_list(is_out) check_list(is_out,ss,se,saved_char) +#define _cimg_mp_check_list() check_list(ss,se,saved_char) #define _cimg_mp_defunc(mp) (*(mp_func)(*(mp).opcode))(mp) #define _cimg_mp_return(x) { *se = saved_char; s_op = previous_s_op; ss_op = previous_ss_op; return x; } #define _cimg_mp_return_nan() _cimg_mp_return(_cimg_mp_slot_nan) -#define _cimg_mp_constant(val) _cimg_mp_return(constant((double)(val))) +#define _cimg_mp_const_scalar(val) _cimg_mp_return(const_scalar((double)(val))) #define _cimg_mp_scalar0(op) _cimg_mp_return(scalar0(op)) #define _cimg_mp_scalar1(op,i1) _cimg_mp_return(scalar1(op,i1)) #define _cimg_mp_scalar2(op,i1,i2) _cimg_mp_return(scalar2(op,i1,i2)) @@ -16861,6 +16923,9 @@ namespace cimg_library_suffixed { #define _cimg_mp_vector2_vs(op,i1,i2) _cimg_mp_return(vector2_vs(op,i1,i2)) #define _cimg_mp_vector2_vv(op,i1,i2) _cimg_mp_return(vector2_vv(op,i1,i2)) #define _cimg_mp_vector3_vss(op,i1,i2,i3) _cimg_mp_return(vector3_vss(op,i1,i2,i3)) +#define _cimg_mp_vector4_vvss(op,i1,i2,i3,i4) _cimg_mp_return(vector4_vvss(op,i1,i2,i3,i4)) +#define _cimg_mp_vector4_vsss(op,i1,i2,i3,i4) _cimg_mp_return(vector4_vsss(op,i1,i2,i3,i4)) +#define _cimg_mp_vector4_svss(op,i1,i2,i3,i4) _cimg_mp_return(vector4_svss(op,i1,i2,i3,i4)) #define _cimg_mp_strerr \ *se = saved_char; \ for (s0 = ss; s0>expr._data && *s0!=';'; --s0) {} \ @@ -16875,15 +16940,13 @@ namespace cimg_library_suffixed { _cimg_math_parser(const char *const expression, const char *const funcname=0, const CImg& img_input=CImg::const_empty(), CImg *const img_output=0, - const CImgList *const list_inputs=0, CImgList *const list_outputs=0, - const bool _is_fill=false): + CImgList *const list_images=0, const bool _is_fill=false): code(_code),code_begin_t(_code_begin_t),code_end_t(_code_end_t), - p_break((CImg*)(cimg_ulong)-2), - imgin(img_input),listin(list_inputs?*list_inputs:CImgList::const_empty()), - imgout(img_output?*img_output:CImg::empty()),listout(list_outputs?*list_outputs:CImgList::empty()), + p_break((CImg*)(cimg_ulong)-2),imgin(img_input), + imgout(img_output?*img_output:CImg::empty()),imglist(list_images?*list_images:CImgList::empty()), img_stats(_img_stats),list_stats(_list_stats),list_median(_list_median),list_norm(_list_norm),user_macro(0), mem_img_median(~0U),mem_img_norm(~0U),mem_img_index(~0U),debug_indent(0),result_dim(0),break_type(0), - constcache_size(0),is_parallelizable(true),is_fill(_is_fill),need_input_copy(false), + constcache_size(0),is_parallelizable(true),is_noncritical_run(false),is_fill(_is_fill),need_input_copy(false), rng((cimg::_rand(),cimg::rng())),calling_function(funcname?funcname:"cimg_math_parser") { #if cimg_use_openmp!=0 @@ -16911,8 +16974,8 @@ namespace cimg_library_suffixed { level = get_level(expr); // Init constant values. -#define _cimg_mp_interpolation (reserved_label[30]!=~0U?reserved_label[30]:0) -#define _cimg_mp_boundary (reserved_label[31]!=~0U?reserved_label[31]:0) +#define _cimg_mp_interpolation (reserved_label[31]!=~0U?reserved_label[31]:0) +#define _cimg_mp_boundary (reserved_label[32]!=~0U?reserved_label[32]:0) #define _cimg_mp_slot_t 17 #define _cimg_mp_slot_nan 29 #define _cimg_mp_slot_x 30 @@ -16933,31 +16996,31 @@ namespace cimg_library_suffixed { mem[23] = (double)imgin._width*imgin._height; // wh mem[24] = (double)imgin._width*imgin._height*imgin._depth; // whd mem[25] = (double)imgin._width*imgin._height*imgin._depth*imgin._spectrum; // whds - mem[26] = (double)listin._width; // l + mem[26] = (double)imglist._width; // l mem[27] = std::exp(1.); // e mem[28] = cimg::PI; // pi mem[_cimg_mp_slot_nan] = cimg::type::nan(); // nan // Set value property : - // { -2 = other | -1 = variable | 0 = computation value | + // { -1 = reserved (e.g. variable) | 0 = computation value | // 1 = compile-time constant | N>1 = constant ptr to vector[N-1] }. memtype.assign(mem._width,1,1,1,0); for (unsigned int i = 0; i<_cimg_mp_slot_x; ++i) memtype[i] = 1; memtype[_cimg_mp_slot_t] = memtype[_cimg_mp_slot_x] = memtype[_cimg_mp_slot_y] = - memtype[_cimg_mp_slot_z] = memtype[_cimg_mp_slot_c] = -2; + memtype[_cimg_mp_slot_z] = memtype[_cimg_mp_slot_c] = -1; mempos = _cimg_mp_slot_c + 1; variable_pos.assign(8); reserved_label.assign(128,1,1,1,~0U); - // reserved_label[0-31] are used to store the memory index of these variables: - // [0] = wh, [1] = whd, [2] = whds, [3] = pi, [4] = im, [5] = iM, [6] = ia, [7] = iv, - // [8] = is, [9] = ip, [10] = ic, [11] = in, [12] = xm, [13] = ym, [14] = zm, [15] = cm, [16] = xM, - // [17] = yM, [18] = zM, [19] = cM, [20] = i0...[29] = i9, [30] = interpolation, [31] = boundary + // reserved_label[0-32] are used to store the memory index of these variables: + // [0] = wh, [1] = whd, [2] = whds, [3] = pi, [4] = im, [5] = iM, [6] = ia, [7] = iv, [8] = id, + // [9] = is, [10] = ip, [11] = ic, [12] = in, [13] = xm, [14] = ym, [15] = zm, [16] = cm, [17] = xM, + // [18] = yM, [19] = zM, [20] = cM, [21] = i0...[30] = i9, [31] = interpolation, [32] = boundary // Compile expression into a sequence of opcodes. s_op = ""; ss_op = expr._data; - const unsigned int ind_result = compile(expr._data,expr._data + expr._width - 1,0,0,false); - if (!_cimg_mp_is_constant(ind_result)) { + const unsigned int ind_result = compile(expr._data,expr._data + expr._width - 1,0,0,0); + if (!_cimg_mp_is_const_scalar(ind_result)) { if (_cimg_mp_is_vector(ind_result)) CImg(&mem[ind_result] + 1,_cimg_mp_size(ind_result),1,1,1,true). fill(cimg::type::nan()); @@ -16979,7 +17042,7 @@ namespace cimg_library_suffixed { opcode.assign(); opcode._is_shared = true; - // Execute begin() bloc if any specified. + // Execute begin() block if any specified. if (code_begin) { mem[_cimg_mp_slot_x] = mem[_cimg_mp_slot_y] = mem[_cimg_mp_slot_z] = mem[_cimg_mp_slot_c] = 0; p_code_end = code_begin.end(); @@ -16995,10 +17058,9 @@ namespace cimg_library_suffixed { _cimg_math_parser(): code(_code),code_begin_t(_code_begin_t),code_end_t(_code_end_t), p_code_end(0),p_break((CImg*)(cimg_ulong)-2), - imgin(CImg::const_empty()),listin(CImgList::const_empty()), - imgout(CImg::empty()),listout(CImgList::empty()), + imgin(CImg::const_empty()),imgout(CImg::empty()),imglist(CImgList::empty()), img_stats(_img_stats),list_stats(_list_stats),list_median(_list_median),list_norm(_list_norm),debug_indent(0), - result_dim(0),break_type(0),constcache_size(0),is_parallelizable(true),is_fill(false), + result_dim(0),break_type(0),constcache_size(0),is_parallelizable(true),is_noncritical_run(false),is_fill(false), need_input_copy(false),rng(0),calling_function(0) { mem.assign(1 + _cimg_mp_slot_c,1,1,1,0); // Allow to skip 'is_empty?' test in operator()() result = mem._data; @@ -17007,14 +17069,15 @@ namespace cimg_library_suffixed { _cimg_math_parser(const _cimg_math_parser& mp): mem(mp.mem),code(mp.code),code_begin_t(mp.code_begin_t),code_end_t(mp.code_end_t), p_code_end(mp.p_code_end),p_break(mp.p_break), - imgin(mp.imgin),listin(mp.listin),imgout(mp.imgout),listout(mp.listout), + imgin(mp.imgin),imgout(mp.imgout),imglist(mp.imglist), img_stats(mp.img_stats),list_stats(mp.list_stats),list_median(mp.list_median),list_norm(mp.list_norm), debug_indent(0),result_dim(mp.result_dim),break_type(0),constcache_size(0), - is_parallelizable(mp.is_parallelizable),is_fill(mp.is_fill),need_input_copy(mp.need_input_copy), - result(mem._data + (mp.result - mp.mem._data)),rng((cimg::_rand(),cimg::rng())),calling_function(0) { + is_parallelizable(mp.is_parallelizable),is_noncritical_run(mp.is_noncritical_run),is_fill(mp.is_fill), + need_input_copy(mp.need_input_copy),result(mem._data + (mp.result - mp.mem._data)), + rng((cimg::_rand(),cimg::rng())),calling_function(0) { #if cimg_use_openmp!=0 - mem[_cimg_mp_slot_t] = omp_get_thread_num(); + mem[_cimg_mp_slot_t] = (double)omp_get_thread_num(); rng+=omp_get_thread_num(); #endif opcode.assign(); @@ -17023,16 +17086,14 @@ namespace cimg_library_suffixed { // Compilation procedure. unsigned int compile(char *ss, char *se, const unsigned int depth, unsigned int *const p_ref, - const bool is_critical) { + const unsigned char block_flags) { if (depth>256) { cimg::strellipsize(expr,64); throw CImgArgumentException("[" cimg_appname "_math_parser] " "CImg<%s>::%s: Call stack overflow (infinite recursion?), " - "in expression '%s%s%s'.", + "in expression '%s'.", pixel_type(),_cimg_mp_calling_function, - (ss - 4)>expr._data?"...":"", - (ss - 4)>expr._data?ss - 4:expr._data, - se<&expr.back()?"...":""); + (ss - 4)>expr._data?ss - 4:expr._data); } char c1, c2; @@ -17040,23 +17101,29 @@ namespace cimg_library_suffixed { do { c2 = 0; if (ssss && (cimg::is_blank(c1 = *(se - 1)) || c1==';')) --se; + while (*ss && (cimg::is_blank(*ss) || *ss==';')) ++ss; // Remove leading blanks and ';' + while (se>ss && (cimg::is_blank(c1 = *(se - 1)) || c1==';')) --se; // Remove trailing blanks and ';' } - while (*ss=='(' && *(se - 1)==')' && std::strchr(ss,')')==se - 1) { + while (*ss=='(' && *(se - 1)==')' && std::strchr(ss,')')==se - 1) { // Remove useless start/end parentheses ++ss; --se; c2 = 1; } + if (*ss=='_' && ss + 1=se) return _cimg_mp_slot_nan; + c2 = 1; + } } while (c2 && ss::%s: %s%s Missing %s, in expression '%s%s%s'.", + "CImg<%s>::%s: %s%s Missing %s, in expression '%s'.", pixel_type(),_cimg_mp_calling_function,s_op,*s_op?":":"", *s_op=='F'?"argument":"item", - (ss_op - 4)>expr._data?"...":"", - (ss_op - 4)>expr._data?ss_op - 4:expr._data, - ss_op + std::strlen(ss_op)<&expr.back()?"...":""); + ss_op); } static const size_t siz_ref = 7*sizeof(unsigned int); @@ -17070,11 +17137,16 @@ namespace cimg_library_suffixed { *s, *ps, *ns, *s0, *s1, *s2, *s3, sep = 0, end = 0; double val = 0, val1, val2; mp_func op; + return_new_comp = false; + + // Bits of 'block_flags' tell about in which code block we currently are: + // 0: critical(), 1: begin(), 2: begin_t(), 3: end(), 4: end_t(). + const bool is_inside_critical = (bool)(block_flags&1); // 'p_ref' is a 'unsigned int[7]' used to return a reference to an image or vector value // linked to the returned memory slot (reference that cannot be determined at compile time). // p_ref[0] can be { 0 = scalar (unlinked) | 1 = vector value | 2 = image value (offset) | - // 3 = image value (coordinates) | 4 = image value as a vector (offsets) | + // 3 = image value (coordinates) | 4 = image value as a vector (offset) | // 5 = image value as a vector (coordinates) }. // Depending on p_ref[0], the remaining p_ref[k] have the following meaning: // When p_ref[0]==0, p_ref is actually unlinked. @@ -17109,8 +17181,8 @@ namespace cimg_library_suffixed { } } if (!nb) nb = cimg_sscanf(ss,"%lf%c%c",&val,&(sep=0),&(end=0)); - if (nb==1) _cimg_mp_constant(val); - if (nb==2 && sep=='%') _cimg_mp_constant(val/100); + if (nb==1) _cimg_mp_const_scalar(val); + if (nb==2 && sep=='%') _cimg_mp_const_scalar(val/100); if (ss1==se) switch (*ss) { // One-char reserved variable case 'c' : _cimg_mp_return(reserved_label[(int)'c']!=~0U?reserved_label[(int)'c']:_cimg_mp_slot_c); @@ -17126,6 +17198,13 @@ namespace cimg_library_suffixed { case 'r' : _cimg_mp_return(reserved_label[(int)'r']!=~0U?reserved_label[(int)'r']:22); case 's' : _cimg_mp_return(reserved_label[(int)'s']!=~0U?reserved_label[(int)'s']:21); case 't' : _cimg_mp_return(reserved_label[(int)'t']!=~0U?reserved_label[(int)'t']:_cimg_mp_slot_t); + case 'n' : + if (reserved_label[(int)'n']!=~0U) _cimg_mp_return(reserved_label[(int)'n']); +#if cimg_use_openmp!=0 + _cimg_mp_const_scalar((double)omp_get_max_threads()); +#else + _cimg_mp_return(1); +#endif case 'w' : _cimg_mp_return(reserved_label[(int)'w']!=~0U?reserved_label[(int)'w']:18); case 'x' : _cimg_mp_return(reserved_label[(int)'x']!=~0U?reserved_label[(int)'x']:_cimg_mp_slot_x); case 'y' : _cimg_mp_return(reserved_label[(int)'y']!=~0U?reserved_label[(int)'y']:_cimg_mp_slot_y); @@ -17133,6 +17212,9 @@ namespace cimg_library_suffixed { case 'u' : if (reserved_label[(int)'u']!=~0U) _cimg_mp_return(reserved_label[(int)'u']); _cimg_mp_scalar2(mp_u,0,1); + case 'v' : + if (reserved_label[(int)'v']!=~0U) _cimg_mp_return(reserved_label[(int)'v']); + _cimg_mp_scalar2(mp_u,11,1); case 'g' : if (reserved_label[(int)'g']!=~0U) _cimg_mp_return(reserved_label[(int)'g']); _cimg_mp_scalar0(mp_g); @@ -17146,6 +17228,7 @@ namespace cimg_library_suffixed { need_input_copy = true; pos = vector(imgin._spectrum); CImg::vector((ulongT)mp_Joff,pos,0,0,imgin._spectrum).move_to(code); + return_new_comp = true; _cimg_mp_return(pos); case 'R' : if (reserved_label[(int)'R']!=~0U) _cimg_mp_return(reserved_label[(int)'R']); @@ -17172,40 +17255,41 @@ namespace cimg_library_suffixed { _cimg_mp_return(reserved_label[3]!=~0U?reserved_label[3]:28); if (*ss=='i') { if (*ss1>='0' && *ss1<='9') { // i0...i9 - pos = 20 + *ss1 - '0'; + pos = 21 + *ss1 - '0'; if (reserved_label[pos]!=~0U) _cimg_mp_return(reserved_label[pos]); need_input_copy = true; - _cimg_mp_scalar6(mp_ixyzc,_cimg_mp_slot_x,_cimg_mp_slot_y,_cimg_mp_slot_z,pos - 20,0,0); + _cimg_mp_scalar6(mp_ixyzc,_cimg_mp_slot_x,_cimg_mp_slot_y,_cimg_mp_slot_z,pos - 21,0,0); } switch (*ss1) { case 'm' : arg1 = 4; arg2 = 0; break; // im case 'M' : arg1 = 5; arg2 = 1; break; // iM case 'a' : arg1 = 6; arg2 = 2; break; // ia case 'v' : arg1 = 7; arg2 = 3; break; // iv - case 's' : arg1 = 8; arg2 = 12; break; // is - case 'p' : arg1 = 9; arg2 = 13; break; // ip + case 'd' : arg1 = 8; arg2 = 3; break; // id + case 's' : arg1 = 9; arg2 = 12; break; // is + case 'p' : arg1 = 10; arg2 = 13; break; // ip case 'c' : // ic - if (reserved_label[10]!=~0U) _cimg_mp_return(reserved_label[10]); - if (mem_img_median==~0U) mem_img_median = imgin?constant(imgin.median()):0; + if (reserved_label[11]!=~0U) _cimg_mp_return(reserved_label[11]); + if (mem_img_median==~0U) mem_img_median = imgin?const_scalar(imgin.median()):0; _cimg_mp_return(mem_img_median); break; case 'n' : // in - if (reserved_label[11]!=~0U) _cimg_mp_return(reserved_label[11]); - if (mem_img_norm==~0U) mem_img_norm = imgin?constant(imgin.magnitude()):0; + if (reserved_label[12]!=~0U) _cimg_mp_return(reserved_label[12]); + if (mem_img_norm==~0U) mem_img_norm = imgin?const_scalar(imgin.magnitude()):0; _cimg_mp_return(mem_img_norm); } } else if (*ss1=='m') switch (*ss) { - case 'x' : arg1 = 12; arg2 = 4; break; // xm - case 'y' : arg1 = 13; arg2 = 5; break; // ym - case 'z' : arg1 = 14; arg2 = 6; break; // zm - case 'c' : arg1 = 15; arg2 = 7; break; // cm + case 'x' : arg1 = 13; arg2 = 4; break; // xm + case 'y' : arg1 = 14; arg2 = 5; break; // ym + case 'z' : arg1 = 15; arg2 = 6; break; // zm + case 'c' : arg1 = 16; arg2 = 7; break; // cm } else if (*ss1=='M') switch (*ss) { - case 'x' : arg1 = 16; arg2 = 8; break; // xM - case 'y' : arg1 = 17; arg2 = 9; break; // yM - case 'z' : arg1 = 18; arg2 = 10; break; // zM - case 'c' : arg1 = 19; arg2 = 11; break; // cM + case 'x' : arg1 = 17; arg2 = 8; break; // xM + case 'y' : arg1 = 18; arg2 = 9; break; // yM + case 'z' : arg1 = 19; arg2 = 10; break; // zM + case 'c' : arg1 = 20; arg2 = 11; break; // cM } if (arg1!=~0U) { if (reserved_label[arg1]!=~0U) _cimg_mp_return(reserved_label[arg1]); @@ -17213,7 +17297,8 @@ namespace cimg_library_suffixed { img_stats.assign(1,14,1,1,0).fill(imgin.get_stats(),false); mem_img_stats.assign(1,14,1,1,~0U); } - if (mem_img_stats[arg2]==~0U) mem_img_stats[arg2] = constant(img_stats[arg2]); + if (mem_img_stats[arg2]==~0U) mem_img_stats[arg2] = const_scalar(img_stats[arg2]); + if (arg1==8) _cimg_mp_const_scalar(std::sqrt(img_stats[arg2])); // id: std variation _cimg_mp_return(mem_img_stats[arg2]); } } else if (ss3==se) { // Three-chars reserved variable @@ -17226,10 +17311,11 @@ namespace cimg_library_suffixed { pos = ~0U; is_sth = false; + for (s0 = ss, s = ss1; s='i'?1:3,0); if (_cimg_mp_is_vector(arg2)) { if (p1!=~0U) { - _cimg_mp_check_constant_index(p1); - p3 = (unsigned int)cimg::mod((int)mem[p1],listin.width()); - p2 = listin[p3]._spectrum; + _cimg_mp_check_const_index(p1); + p3 = (unsigned int)cimg::mod((int)mem[p1],imglist.width()); + p2 = imglist[p3]._spectrum; } else p2 = imgin._spectrum; if (!p2) _cimg_mp_return(0); _cimg_mp_check_type(arg2,2,2,p2); } else p2 = 0; if (p_ref) { - *p_ref = _cimg_mp_is_vector(arg2)?4:2; + *p_ref = *ss=='I' || *ss=='J'?4:2; p_ref[1] = p1; p_ref[2] = (unsigned int)is_relative; p_ref[3] = arg1; if (_cimg_mp_is_vector(arg2)) - set_variable_vector(arg2); // Prevent from being used in further optimization - else if (_cimg_mp_is_comp(arg2)) memtype[arg2] = -2; - if (_cimg_mp_is_comp(arg1)) memtype[arg1] = -2; + set_reserved_vector(arg2); // Prevent from being used in further optimization + else if (_cimg_mp_is_comp(arg2)) memtype[arg2] = -1; + if (_cimg_mp_is_comp(arg1)) memtype[arg1] = -1; } if (p1!=~0U) { - if (!listout) _cimg_mp_return(arg2); + if (!imglist) _cimg_mp_return(arg2); if (*ss>='i') CImg::vector((ulongT)(is_relative?mp_list_set_joff:mp_list_set_ioff), arg2,p1,arg1).move_to(code); @@ -17318,21 +17404,21 @@ namespace cimg_library_suffixed { } if (*ss1=='(' && *ve1==')') { // i/j/I/J(_#ind,_x,_y,_z,_c) = value - if (!is_critical) is_parallelizable = false; + if (!is_inside_critical) is_parallelizable = false; if (*ss2=='#') { // Index specified s0 = ss3; while (s0='i'?1:3,0); if (s0='i') CImg::vector((ulongT)(is_relative?mp_list_set_jxyzc:mp_list_set_ixyzc), arg5,p1,arg1,arg2,arg3,arg4).move_to(code); @@ -17412,29 +17498,25 @@ namespace cimg_library_suffixed { // Assign vector value (direct). if (l_variable_name>3 && *ve1==']' && *ss!='[') { s0 = ve1; while (s0>ss && (*s0!='[' || level[s0 - expr._data]!=clevel)) --s0; - is_sth = true; // is_valid_variable_name? - if (*ss>='0' && *ss<='9') is_sth = false; - else for (ns = ss; nsss) { + if (s0>ss && cimg::is_varname(ss,s0 - ss)) { variable_name[s0 - ss] = 0; // Remove brackets in variable name get_variable_pos(variable_name,arg1,arg2); arg1 = arg2!=~0U?reserved_label[arg2]:arg1!=~0U?variable_pos[arg1]:~0U; // Vector slot if (arg1==~0U || _cimg_mp_is_scalar(arg1)) - compile(ss,s0 - 1,depth1,0,is_critical); // Variable does not exist or is not a vector -> error + compile(ss,s0,depth1,0,block_flags); // Variable does not exist or is not a vector -> error - arg2 = compile(++s0,ve1,depth1,0,is_critical); // Index - arg3 = compile(s + 1,se,depth1,0,is_critical); // Value to assign + arg2 = compile(++s0,ve1,depth1,0,block_flags); // Index + arg3 = compile(s + 1,se,depth1,0,block_flags); // Value to assign _cimg_mp_check_type(arg3,2,1,0); - if (_cimg_mp_is_constant(arg2)) { // Constant index -> return corresponding variable slot directly + if (_cimg_mp_is_const_scalar(arg2)) { // Constant index -> return corresponding variable slot directly nb = (int)mem[arg2]; if (nb>=0 && nb<(int)_cimg_mp_size(arg1)) { arg1+=nb + 1; CImg::vector((ulongT)mp_copy,arg1,arg3).move_to(code); _cimg_mp_return(arg1); } - compile(ss,s,depth1,0,is_critical); // Out-of-bounds reference -> error + compile(ss,s,depth1,0,block_flags); // Out-of-bounds reference -> error } // Case of non-constant index -> return assigned value + linked reference @@ -17442,8 +17524,8 @@ namespace cimg_library_suffixed { *p_ref = 1; p_ref[1] = arg1; p_ref[2] = arg2; - if (_cimg_mp_is_comp(arg3)) memtype[arg3] = -2; // Prevent from being used in further optimization - if (_cimg_mp_is_comp(arg2)) memtype[arg2] = -2; + if (_cimg_mp_is_comp(arg3)) memtype[arg3] = -1; // Prevent from being used in further optimization + if (_cimg_mp_is_comp(arg2)) memtype[arg2] = -1; } CImg::vector((ulongT)mp_vector_set_off,arg3,arg1,(ulongT)_cimg_mp_size(arg1),arg2). move_to(code); @@ -17454,13 +17536,8 @@ namespace cimg_library_suffixed { // Assign user-defined macro. if (l_variable_name>2 && *ve1==')' && *ss!='(') { s0 = ve1; while (s0>ss && *s0!='(') --s0; - is_sth = std::strncmp(variable_name,"debug(",6) && - std::strncmp(variable_name,"print(",6); // is_valid_function_name? - if (*ss>='0' && *ss<='9') is_sth = false; - else for (ns = ss; nsss) { // Looks like a valid function declaration + if (cimg::is_varname(ss,s0 - ss) && std::strncmp(variable_name,"debug(",6) && + std::strncmp(variable_name,"print(",6)) { // Valid macro name s0 = variable_name._data + (s0 - ss); *s0 = 0; s1 = variable_name._data + l_variable_name - 1; // Pointer to closing parenthesis @@ -17468,45 +17545,56 @@ namespace cimg_library_suffixed { ++s; while (*s && cimg::is_blank(*s)) ++s; CImg(s,(unsigned int)(se - s + 1)).move_to(macro_body,0); + bool is_variadic = false; p1 = 1; // Index of current parsed argument for (s = s0 + 1; s<=s1; ++p1, s = ns + 1) { // Parse function arguments + if (is_variadic && p1>1) { + _cimg_mp_strerr; + cimg::strellipsize(variable_name,64); + throw CImgArgumentException("[" cimg_appname "_math_parser] " + "CImg<%s>::%s: %s: Multiple arguments not allowed when first one is " + "variadic, in macro definition '%s()', in expression '%s'.", + pixel_type(),_cimg_mp_calling_function,s_op, + variable_name._data,s0); + } if (p1>24) { _cimg_mp_strerr; cimg::strellipsize(variable_name,64); throw CImgArgumentException("[" cimg_appname "_math_parser] " - "CImg<%s>::%s: %s: Too much specified arguments (>24) in macro " - "definition '%s()', in expression '%s%s%s'.", + "CImg<%s>::%s: %s: Too much specified arguments (>24), in macro " + "definition '%s()', in expression '%s'.", pixel_type(),_cimg_mp_calling_function,s_op, - variable_name._data, - s0>expr._data?"...":"",s0,se<&expr.back()?"...":""); + variable_name._data,s0); } while (*s && cimg::is_blank(*s)) ++s; if (*s==')' && p1==1) break; // Function has no arguments - s2 = s; // Start of the argument name is_sth = true; // is_valid_argument_name? - if (*s>='0' && *s<='9') is_sth = false; - else for (ns = s; ns='0' && *s2<='9') is_sth = false; + else for (ns = s2; nss2 && *ns=='.' && ns[1]=='.' && ns[2]=='.') { is_variadic = true; ns+=3; } + else if (*ns=='.') is_sth = false; while (*ns && cimg::is_blank(*ns)) ++ns; + if (!is_sth || s2==s3 || (*ns!=',' && ns!=s1)) { _cimg_mp_strerr; cimg::strellipsize(variable_name,64); throw CImgArgumentException("[" cimg_appname "_math_parser] " "CImg<%s>::%s: %s: %s name specified for argument %u when defining " - "macro '%s()', in expression '%s%s%s'.", + "macro '%s()', in expression '%s'.", pixel_type(),_cimg_mp_calling_function,s_op, is_sth?"Empty":"Invalid",p1, - variable_name._data, - s0>expr._data?"...":"",s0,se<&expr.back()?"...":""); + variable_name._data,s0); } - if (ns==s1 || *ns==',') { // New argument found + + if (ns==s1 || *ns==',' || (is_variadic && *ns=='.')) { // New argument found *s3 = 0; p2 = (unsigned int)(s3 - s2); // Argument length for (ps = std::strstr(macro_body[0],s2); ps; ps = std::strstr(ps,s2)) { // Replace by arg number - if (!((ps>macro_body[0]._data && is_varchar(*(ps - 1))) || - (ps + p2macro_body[0]._data && cimg::is_varchar(*(ps - 1))) || + (ps + p2macro_body[0]._data && *(ps - 1)=='#') { // Remove pre-number sign *(ps - 1) = (char)p1; if (ps + p26 && !std::strncmp(variable_name,"const ",6); - s0 = variable_name._data; if (is_const) { s0+=6; while (cimg::is_blank(*s0)) ++s0; variable_name.resize(variable_name.end() - s0,1,1,1,0,0,1); } + if (cimg::is_varname(variable_name)) { // Valid variable name - if (*variable_name>='0' && *variable_name<='9') is_sth = false; - else for (ns = variable_name._data; *ns; ++ns) - if (!is_varchar(*ns)) { is_sth = false; break; } - - // Assign variable (direct). - if (is_sth) { + // Assign variable (direct). get_variable_pos(variable_name,arg1,arg2); - arg3 = compile(s + 1,se,depth1,0,is_critical); - if (is_const) _cimg_mp_check_constant(arg3,2,0); + arg3 = compile(s + 1,se,depth1,0,block_flags); + is_sth = return_new_comp; // is arg3 a new blank object? + if (is_const) _cimg_mp_check_const_scalar(arg3,2,0); arg1 = arg2!=~0U?reserved_label[arg2]:arg1!=~0U?variable_pos[arg1]:~0U; if (arg1==~0U) { // Create new variable if (_cimg_mp_is_vector(arg3)) { // Vector variable - arg1 = is_comp_vector(arg3)?arg3:vector_copy(arg3); - set_variable_vector(arg1); // Prevent from being used in further optimization + arg1 = is_sth || is_comp_vector(arg3)?arg3:vector_copy(arg3); + set_reserved_vector(arg1); // Prevent from being used in further optimization } else { // Scalar variable if (is_const) arg1 = arg3; else { - arg1 = _cimg_mp_is_comp(arg3)?arg3:scalar1(mp_copy,arg3); + arg1 = is_sth || _cimg_mp_is_comp(arg3)?arg3:scalar1(mp_copy,arg3); memtype[arg1] = -1; } } + if (arg2!=~0U) reserved_label[arg2] = arg1; - else { - if (variable_def._width>=variable_pos._width) variable_pos.resize(-200,1,1,1,0); - variable_pos[variable_def._width] = arg1; - variable_name.move_to(variable_def); - } + else { + if (variable_def._width>=variable_pos._width) variable_pos.resize(-200,1,1,1,0); + variable_pos[variable_def._width] = arg1; + variable_name.move_to(variable_def); + } } else { // Variable already exists -> assign a new value - if (is_const || _cimg_mp_is_constant(arg1)) { + if (is_const || _cimg_mp_is_const_scalar(arg1)) { _cimg_mp_strerr; cimg::strellipsize(variable_name,64); throw CImgArgumentException("[" cimg_appname "_math_parser] " "CImg<%s>::%s: %s: Invalid assignment of %sconst variable '%s'%s, " - "in expression '%s%s%s'.", + "in expression '%s'.", pixel_type(),_cimg_mp_calling_function,s_op, - _cimg_mp_is_constant(arg1)?"already-defined ":"non-", + _cimg_mp_is_const_scalar(arg1)?"":"non-", variable_name._data, - !_cimg_mp_is_constant(arg1) && is_const?" as a new const variable":"", - s0>expr._data?"...":"",s0,se<&expr.back()?"...":""); + !_cimg_mp_is_const_scalar(arg1) && is_const?" as a const variable":"", + s0); } _cimg_mp_check_type(arg3,2,_cimg_mp_is_vector(arg1)?3:1,_cimg_mp_size(arg1)); if (_cimg_mp_is_vector(arg1)) { // Vector @@ -17608,18 +17693,19 @@ namespace cimg_library_suffixed { } else // Scalar CImg::vector((ulongT)mp_copy,arg1,arg3).move_to(code); } + return_new_comp = false; _cimg_mp_return(arg1); } // Assign lvalue (variable name was not valid for a direct assignment). arg1 = ~0U; is_sth = (bool)std::strchr(variable_name,'?'); // Contains_ternary_operator? - if (is_sth) break; // Do nothing and make ternary operator prioritary over assignment + if (is_sth) break; // Do nothing and make ternary operator priority over assignment if (l_variable_name>2 && (std::strchr(variable_name,'(') || std::strchr(variable_name,'['))) { ref.assign(7); - arg1 = compile(ss,s,depth1,ref,is_critical); // Lvalue slot - arg2 = compile(s + 1,se,depth1,0,is_critical); // Value to assign + arg1 = compile(ss,s,depth1,ref,block_flags); // Lvalue slot + arg2 = compile(s + 1,se,depth1,0,block_flags); // Value to assign if (*ref==1) { // Vector value (scalar): V[k] = scalar _cimg_mp_check_type(arg2,2,1,0); @@ -17632,14 +17718,14 @@ namespace cimg_library_suffixed { } if (*ref==2) { // Image value (scalar): i/j[_#ind,off] = scalar - if (!is_critical) is_parallelizable = false; + if (!is_inside_critical) is_parallelizable = false; _cimg_mp_check_type(arg2,2,1,0); p1 = ref[1]; // Index is_relative = (bool)ref[2]; arg3 = ref[3]; // Offset if (p_ref) std::memcpy(p_ref,ref,siz_ref); if (p1!=~0U) { - if (!listout) _cimg_mp_return(arg2); + if (!imglist) _cimg_mp_return(arg2); CImg::vector((ulongT)(is_relative?mp_list_set_joff:mp_list_set_ioff), arg2,p1,arg3).move_to(code); } else { @@ -17651,7 +17737,7 @@ namespace cimg_library_suffixed { } if (*ref==3) { // Image value (scalar): i/j(_#ind,_x,_y,_z,_c) = scalar - if (!is_critical) is_parallelizable = false; + if (!is_inside_critical) is_parallelizable = false; _cimg_mp_check_type(arg2,2,1,0); p1 = ref[1]; // Index is_relative = (bool)ref[2]; @@ -17661,7 +17747,7 @@ namespace cimg_library_suffixed { arg6 = ref[6]; // C if (p_ref) std::memcpy(p_ref,ref,siz_ref); if (p1!=~0U) { - if (!listout) _cimg_mp_return(arg2); + if (!imglist) _cimg_mp_return(arg2); CImg::vector((ulongT)(is_relative?mp_list_set_jxyzc:mp_list_set_ixyzc), arg2,p1,arg3,arg4,arg5,arg6).move_to(code); } else { @@ -17673,19 +17759,19 @@ namespace cimg_library_suffixed { } if (*ref==4) { // Image value (vector): I/J[_#ind,off] = value - if (!is_critical) is_parallelizable = false; + if (!is_inside_critical) is_parallelizable = false; _cimg_mp_check_type(arg2,2,3,_cimg_mp_size(arg1)); p1 = ref[1]; // Index is_relative = (bool)ref[2]; arg3 = ref[3]; // Offset if (p_ref) std::memcpy(p_ref,ref,siz_ref); if (p1!=~0U) { - if (!listout) _cimg_mp_return(arg2); + if (!imglist) _cimg_mp_return(arg2); if (_cimg_mp_is_scalar(arg2)) CImg::vector((ulongT)(is_relative?mp_list_set_Joff_s:mp_list_set_Ioff_s), arg2,p1,arg3).move_to(code); else { - _cimg_mp_check_constant_index(p1); + _cimg_mp_check_const_index(p1); CImg::vector((ulongT)(is_relative?mp_list_set_Joff_v:mp_list_set_Ioff_v), arg2,p1,arg3,_cimg_mp_size(arg2)).move_to(code); } @@ -17703,7 +17789,7 @@ namespace cimg_library_suffixed { } if (*ref==5) { // Image value (vector): I/J(_#ind,_x,_y,_z,_c) = value - if (!is_critical) is_parallelizable = false; + if (!is_inside_critical) is_parallelizable = false; _cimg_mp_check_type(arg2,2,3,_cimg_mp_size(arg1)); p1 = ref[1]; // Index is_relative = (bool)ref[2]; @@ -17712,12 +17798,12 @@ namespace cimg_library_suffixed { arg5 = ref[5]; // Z if (p_ref) std::memcpy(p_ref,ref,siz_ref); if (p1!=~0U) { - if (!listout) _cimg_mp_return(arg2); + if (!imglist) _cimg_mp_return(arg2); if (_cimg_mp_is_scalar(arg2)) CImg::vector((ulongT)(is_relative?mp_list_set_Jxyz_s:mp_list_set_Ixyz_s), arg2,p1,arg3,arg4,arg5).move_to(code); else { - _cimg_mp_check_constant_index(p1); + _cimg_mp_check_const_index(p1); CImg::vector((ulongT)(is_relative?mp_list_set_Jxyz_v:mp_list_set_Ixyz_v), arg2,p1,arg3,arg4,arg5,_cimg_mp_size(arg2)).move_to(code); } @@ -17745,7 +17831,7 @@ namespace cimg_library_suffixed { _cimg_mp_return(arg1); } - if (_cimg_mp_is_variable(arg1)) { // Scalar variable: s = scalar + if (_cimg_mp_is_reserved(arg1)) { // Scalar variable: s = scalar _cimg_mp_check_type(arg2,2,1,0); CImg::vector((ulongT)mp_copy,arg1,arg2).move_to(code); _cimg_mp_return(arg1); @@ -17757,11 +17843,10 @@ namespace cimg_library_suffixed { cimg::strellipsize(variable_name,64); throw CImgArgumentException("[" cimg_appname "_math_parser] " "CImg<%s>::%s: %s: Invalid %slvalue '%s', " - "in expression '%s%s%s'.", + "in expression '%s'.", pixel_type(),_cimg_mp_calling_function,s_op, - arg1!=~0U && _cimg_mp_is_constant(arg1)?"const ":"", - variable_name._data, - s0>expr._data?"...":"",s0,se<&expr.back()?"...":""); + arg1!=~0U && _cimg_mp_is_const_scalar(arg1)?"const ":"", + variable_name._data,s0); } // Apply unary/binary/ternary operators. The operator precedences should be the same as in C++. @@ -17771,8 +17856,8 @@ namespace cimg_library_suffixed { _cimg_mp_op(*ps=='*'?"Operator '**='":*ps=='/'?"Operator '//='":"Operator '^^='"); ref.assign(7); - arg1 = compile(ss,ns,depth1,ref,is_critical); // Vector slot - arg2 = compile(s + 1,se,depth1,0,is_critical); // Right operand + arg1 = compile(ss,ns,depth1,ref,block_flags); // Vector slot + arg2 = compile(s + 1,se,depth1,0,block_flags); // Right operand _cimg_mp_check_type(arg1,1,2,2); _cimg_mp_check_type(arg2,2,3,2); if (_cimg_mp_is_vector(arg2)) { // Complex **= complex @@ -17796,14 +17881,14 @@ namespace cimg_library_suffixed { } if (*ref==4) { // Image value (vector): I/J[_#ind,off] **= value - if (!is_critical) is_parallelizable = false; + if (!is_inside_critical) is_parallelizable = false; p1 = ref[1]; // Index is_relative = (bool)ref[2]; arg3 = ref[3]; // Offset if (p_ref) std::memcpy(p_ref,ref,siz_ref); if (p1!=~0U) { - if (!listout) _cimg_mp_return(arg1); - _cimg_mp_check_constant_index(p1); + if (!imglist) _cimg_mp_return(arg1); + _cimg_mp_check_const_index(p1); CImg::vector((ulongT)(is_relative?mp_list_set_Joff_v:mp_list_set_Ioff_v), arg1,p1,arg3,_cimg_mp_size(arg1)).move_to(code); } else { @@ -17813,7 +17898,7 @@ namespace cimg_library_suffixed { } } else if (*ref==5) { // Image value (vector): I/J(_#ind,_x,_y,_z,_c) **= value - if (!is_critical) is_parallelizable = false; + if (!is_inside_critical) is_parallelizable = false; p1 = ref[1]; // Index is_relative = (bool)ref[2]; arg3 = ref[3]; // X @@ -17821,8 +17906,8 @@ namespace cimg_library_suffixed { arg5 = ref[5]; // Z if (p_ref) std::memcpy(p_ref,ref,siz_ref); if (p1!=~0U) { - if (!listout) _cimg_mp_return(arg1); - _cimg_mp_check_constant_index(p1); + if (!imglist) _cimg_mp_return(arg1); + _cimg_mp_check_const_index(p1); CImg::vector((ulongT)(is_relative?mp_list_set_Jxyz_v:mp_list_set_Ixyz_v), arg1,p1,arg3,arg4,arg5,_cimg_mp_size(arg1)).move_to(code); } else { @@ -17836,7 +17921,7 @@ namespace cimg_library_suffixed { } for (s = se2, ps = se3, ns = ps - 1; s>ss1; --s, --ps, --ns) // Here, ns = ps - 1 - if (*s=='=' && (*ps=='+' || *ps=='-' || *ps=='*' || *ps=='/' || *ps=='%' || + if (*s=='=' && (*ps=='+' || *ps=='-' || *ps=='*' || *ps=='/' || (*ps=='%' && s[1]!='=') || *ps=='&' || *ps=='^' || *ps=='|' || (*ps=='>' && *ns=='>') || (*ps=='<' && *ns=='<')) && level[s - expr._data]==clevel) { // Self-operators (+=,-=,*=,/=,%=,>>=,<<=,&=,^=,|=) @@ -17855,15 +17940,15 @@ namespace cimg_library_suffixed { s1 = *ps=='>' || *ps=='<'?ns:ps; ref.assign(7); - arg1 = compile(ss,s1,depth1,ref,is_critical); // Variable slot - arg2 = compile(s + 1,se,depth1,0,is_critical); // Value to apply + arg1 = compile(ss,s1,depth1,ref,block_flags); // Variable slot + arg2 = compile(s + 1,se,depth1,0,block_flags); // Value to apply // Check for particular case to be simplified. if ((op==mp_self_add || op==mp_self_sub) && !arg2) _cimg_mp_return(arg1); if ((op==mp_self_mul || op==mp_self_div) && arg2==1) _cimg_mp_return(arg1); // Apply operator on a copy to prevent modifying a constant or a variable. - if (*ref && (_cimg_mp_is_constant(arg1) || _cimg_mp_is_vector(arg1) || _cimg_mp_is_variable(arg1))) { + if (*ref && (_cimg_mp_is_const_scalar(arg1) || _cimg_mp_is_vector(arg1) || _cimg_mp_is_reserved(arg1))) { if (_cimg_mp_is_vector(arg1)) arg1 = vector_copy(arg1); else arg1 = scalar1(mp_copy,arg1); } @@ -17880,7 +17965,7 @@ namespace cimg_library_suffixed { } if (*ref==2) { // Image value (scalar): i/j[_#ind,off] += scalar - if (!is_critical) is_parallelizable = false; + if (!is_inside_critical) is_parallelizable = false; _cimg_mp_check_type(arg2,2,1,0); p1 = ref[1]; // Index is_relative = (bool)ref[2]; @@ -17888,7 +17973,7 @@ namespace cimg_library_suffixed { if (p_ref) std::memcpy(p_ref,ref,siz_ref); CImg::vector((ulongT)op,arg1,arg2).move_to(code); if (p1!=~0U) { - if (!listout) _cimg_mp_return(arg1); + if (!imglist) _cimg_mp_return(arg1); CImg::vector((ulongT)(is_relative?mp_list_set_joff:mp_list_set_ioff), arg1,p1,arg3).move_to(code); } else { @@ -17900,7 +17985,7 @@ namespace cimg_library_suffixed { } if (*ref==3) { // Image value (scalar): i/j(_#ind,_x,_y,_z,_c) += scalar - if (!is_critical) is_parallelizable = false; + if (!is_inside_critical) is_parallelizable = false; _cimg_mp_check_type(arg2,2,1,0); p1 = ref[1]; // Index is_relative = (bool)ref[2]; @@ -17911,7 +17996,7 @@ namespace cimg_library_suffixed { if (p_ref) std::memcpy(p_ref,ref,siz_ref); CImg::vector((ulongT)op,arg1,arg2).move_to(code); if (p1!=~0U) { - if (!listout) _cimg_mp_return(arg1); + if (!imglist) _cimg_mp_return(arg1); CImg::vector((ulongT)(is_relative?mp_list_set_jxyzc:mp_list_set_ixyzc), arg1,p1,arg3,arg4,arg5,arg6).move_to(code); } else { @@ -17923,7 +18008,7 @@ namespace cimg_library_suffixed { } if (*ref==4) { // Image value (vector): I/J[_#ind,off] += value - if (!is_critical) is_parallelizable = false; + if (!is_inside_critical) is_parallelizable = false; _cimg_mp_check_type(arg2,2,3,_cimg_mp_size(arg1)); p1 = ref[1]; // Index is_relative = (bool)ref[2]; @@ -17931,7 +18016,7 @@ namespace cimg_library_suffixed { if (p_ref) std::memcpy(p_ref,ref,siz_ref); if (_cimg_mp_is_scalar(arg2)) self_vector_s(arg1,op,arg2); else self_vector_v(arg1,op,arg2); if (p1!=~0U) { - if (!listout) _cimg_mp_return(arg1); + if (!imglist) _cimg_mp_return(arg1); CImg::vector((ulongT)(is_relative?mp_list_set_Joff_v:mp_list_set_Ioff_v), arg1,p1,arg3,_cimg_mp_size(arg1)).move_to(code); } else { @@ -17943,7 +18028,7 @@ namespace cimg_library_suffixed { } if (*ref==5) { // Image value (vector): I/J(_#ind,_x,_y,_z,_c) += value - if (!is_critical) is_parallelizable = false; + if (!is_inside_critical) is_parallelizable = false; _cimg_mp_check_type(arg2,2,3,_cimg_mp_size(arg1)); p1 = ref[1]; // Index is_relative = (bool)ref[2]; @@ -17953,7 +18038,7 @@ namespace cimg_library_suffixed { if (p_ref) std::memcpy(p_ref,ref,siz_ref); if (_cimg_mp_is_scalar(arg2)) self_vector_s(arg1,op,arg2); else self_vector_v(arg1,op,arg2); if (p1!=~0U) { - if (!listout) _cimg_mp_return(arg1); + if (!imglist) _cimg_mp_return(arg1); CImg::vector((ulongT)(is_relative?mp_list_set_Jxyz_v:mp_list_set_Ixyz_v), arg1,p1,arg3,arg4,arg5,_cimg_mp_size(arg1)).move_to(code); } else { @@ -17971,7 +18056,7 @@ namespace cimg_library_suffixed { _cimg_mp_return(arg1); } - if (_cimg_mp_is_variable(arg1)) { // Scalar variable: s += scalar + if (_cimg_mp_is_reserved(arg1)) { // Scalar variable: s += scalar _cimg_mp_check_type(arg2,2,1,0); CImg::vector((ulongT)op,arg1,arg2).move_to(code); _cimg_mp_return(arg1); @@ -17983,77 +18068,79 @@ namespace cimg_library_suffixed { cimg::strellipsize(variable_name,64); throw CImgArgumentException("[" cimg_appname "_math_parser] " "CImg<%s>::%s: %s: Invalid %slvalue '%s', " - "in expression '%s%s%s'.", + "in expression '%s'.", pixel_type(),_cimg_mp_calling_function,s_op, - _cimg_mp_is_constant(arg1)?"const ":"", - variable_name._data, - s0>expr._data?"...":"",s0,se<&expr.back()?"...":""); + _cimg_mp_is_const_scalar(arg1)?"const ":"", + variable_name._data,s0); } for (s = ss1; s::vector((ulongT)mp_if,pos,arg1,arg2,arg3, p3 - p2,code._width - p3,arg4).move_to(code,p2); + return_new_comp = true; _cimg_mp_return(pos); } for (s = se3, ns = se2; s>ss; --s, --ns) if (*s=='|' && *ns=='|' && level[s - expr._data]==clevel) { // Logical or ('||') _cimg_mp_op("Operator '||'"); - arg1 = compile(ss,s,depth1,0,is_critical); + arg1 = compile(ss,s,depth1,0,block_flags); _cimg_mp_check_type(arg1,1,1,0); if (arg1>0 && arg1<=16) _cimg_mp_return(1); p2 = code._width; - arg2 = compile(s + 2,se,depth1,0,is_critical); + arg2 = compile(s + 2,se,depth1,0,block_flags); _cimg_mp_check_type(arg2,2,1,0); - if (_cimg_mp_is_constant(arg1) && _cimg_mp_is_constant(arg2)) - _cimg_mp_constant(mem[arg1] || mem[arg2]); + if (_cimg_mp_is_const_scalar(arg1) && _cimg_mp_is_const_scalar(arg2)) + _cimg_mp_const_scalar(mem[arg1] || mem[arg2]); if (!arg1) _cimg_mp_return(arg2); pos = scalar(); CImg::vector((ulongT)mp_logical_or,pos,arg1,arg2,code._width - p2). move_to(code,p2); + return_new_comp = true; _cimg_mp_return(pos); } for (s = se3, ns = se2; s>ss; --s, --ns) if (*s=='&' && *ns=='&' && level[s - expr._data]==clevel) { // Logical and ('&&') _cimg_mp_op("Operator '&&'"); - arg1 = compile(ss,s,depth1,0,is_critical); + arg1 = compile(ss,s,depth1,0,block_flags); _cimg_mp_check_type(arg1,1,1,0); if (!arg1) _cimg_mp_return(0); p2 = code._width; - arg2 = compile(s + 2,se,depth1,0,is_critical); + arg2 = compile(s + 2,se,depth1,0,block_flags); _cimg_mp_check_type(arg2,2,1,0); - if (_cimg_mp_is_constant(arg1) && _cimg_mp_is_constant(arg2)) - _cimg_mp_constant(mem[arg1] && mem[arg2]); + if (_cimg_mp_is_const_scalar(arg1) && _cimg_mp_is_const_scalar(arg2)) + _cimg_mp_const_scalar(mem[arg1] && mem[arg2]); if (arg1>0 && arg1<=16) _cimg_mp_return(arg2); pos = scalar(); CImg::vector((ulongT)mp_logical_and,pos,arg1,arg2,code._width - p2). move_to(code,p2); + return_new_comp = true; _cimg_mp_return(pos); } for (s = se2; s>ss; --s) if (*s=='|' && level[s - expr._data]==clevel) { // Bitwise or ('|') _cimg_mp_op("Operator '|'"); - arg1 = compile(ss,s,depth1,0,is_critical); - arg2 = compile(s + 1,se,depth1,0,is_critical); + arg1 = compile(ss,s,depth1,0,block_flags); + arg2 = compile(s + 1,se,depth1,0,block_flags); _cimg_mp_check_type(arg2,2,3,_cimg_mp_size(arg1)); if (_cimg_mp_is_vector(arg1) && _cimg_mp_is_vector(arg2)) _cimg_mp_vector2_vv(mp_bitwise_or,arg1,arg2); if (_cimg_mp_is_vector(arg1) && _cimg_mp_is_scalar(arg2)) { @@ -18064,8 +18151,8 @@ namespace cimg_library_suffixed { if (!arg1) _cimg_mp_return(arg2); _cimg_mp_vector2_sv(mp_bitwise_or,arg1,arg2); } - if (_cimg_mp_is_constant(arg1) && _cimg_mp_is_constant(arg2)) - _cimg_mp_constant((longT)mem[arg1] | (longT)mem[arg2]); + if (_cimg_mp_is_const_scalar(arg1) && _cimg_mp_is_const_scalar(arg2)) + _cimg_mp_const_scalar((longT)mem[arg1] | (longT)mem[arg2]); if (!arg2) _cimg_mp_return(arg1); if (!arg1) _cimg_mp_return(arg2); _cimg_mp_scalar2(mp_bitwise_or,arg1,arg2); @@ -18074,14 +18161,14 @@ namespace cimg_library_suffixed { for (s = se2; s>ss; --s) if (*s=='&' && level[s - expr._data]==clevel) { // Bitwise and ('&') _cimg_mp_op("Operator '&'"); - arg1 = compile(ss,s,depth1,0,is_critical); - arg2 = compile(s + 1,se,depth1,0,is_critical); + arg1 = compile(ss,s,depth1,0,block_flags); + arg2 = compile(s + 1,se,depth1,0,block_flags); _cimg_mp_check_type(arg2,2,3,_cimg_mp_size(arg1)); if (_cimg_mp_is_vector(arg1) && _cimg_mp_is_vector(arg2)) _cimg_mp_vector2_vv(mp_bitwise_and,arg1,arg2); if (_cimg_mp_is_vector(arg1) && _cimg_mp_is_scalar(arg2)) _cimg_mp_vector2_vs(mp_bitwise_and,arg1,arg2); if (_cimg_mp_is_scalar(arg1) && _cimg_mp_is_vector(arg2)) _cimg_mp_vector2_sv(mp_bitwise_and,arg1,arg2); - if (_cimg_mp_is_constant(arg1) && _cimg_mp_is_constant(arg2)) - _cimg_mp_constant((longT)mem[arg1] & (longT)mem[arg2]); + if (_cimg_mp_is_const_scalar(arg1) && _cimg_mp_is_const_scalar(arg2)) + _cimg_mp_const_scalar((longT)mem[arg1] & (longT)mem[arg2]); if (!arg1 || !arg2) _cimg_mp_return(0); _cimg_mp_scalar2(mp_bitwise_and,arg1,arg2); } @@ -18089,8 +18176,8 @@ namespace cimg_library_suffixed { for (s = se3, ns = se2; s>ss; --s, --ns) if (*s=='!' && *ns=='=' && level[s - expr._data]==clevel) { // Not equal to ('!=') _cimg_mp_op("Operator '!='"); - arg1 = compile(ss,s,depth1,0,is_critical); - arg2 = compile(s + 2,se,depth1,0,is_critical); + arg1 = compile(ss,s,depth1,0,block_flags); + arg2 = compile(s + 2,se,depth1,0,block_flags); if (arg1==arg2) _cimg_mp_return(0); p1 = _cimg_mp_size(arg1); p2 = _cimg_mp_size(arg2); @@ -18098,17 +18185,19 @@ namespace cimg_library_suffixed { if (p1 && p2 && p1!=p2) _cimg_mp_return(1); pos = scalar(); CImg::vector((ulongT)mp_vector_neq,pos,arg1,p1,arg2,p2,11,1).move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } - if (_cimg_mp_is_constant(arg1) && _cimg_mp_is_constant(arg2)) _cimg_mp_constant(mem[arg1]!=mem[arg2]); + if (_cimg_mp_is_const_scalar(arg1) && _cimg_mp_is_const_scalar(arg2)) + _cimg_mp_const_scalar(mem[arg1]!=mem[arg2]); _cimg_mp_scalar2(mp_neq,arg1,arg2); } for (s = se3, ns = se2; s>ss; --s, --ns) if (*s=='=' && *ns=='=' && level[s - expr._data]==clevel) { // Equal to ('==') _cimg_mp_op("Operator '=='"); - arg1 = compile(ss,s,depth1,0,is_critical); - arg2 = compile(s + 2,se,depth1,0,is_critical); + arg1 = compile(ss,s,depth1,0,block_flags); + arg2 = compile(s + 2,se,depth1,0,block_flags); if (arg1==arg2) _cimg_mp_return(1); p1 = _cimg_mp_size(arg1); p2 = _cimg_mp_size(arg2); @@ -18116,22 +18205,25 @@ namespace cimg_library_suffixed { if (p1 && p2 && p1!=p2) _cimg_mp_return(0); pos = scalar(); CImg::vector((ulongT)mp_vector_eq,pos,arg1,p1,arg2,p2,11,1).move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } - if (_cimg_mp_is_constant(arg1) && _cimg_mp_is_constant(arg2)) _cimg_mp_constant(mem[arg1]==mem[arg2]); + if (_cimg_mp_is_const_scalar(arg1) && _cimg_mp_is_const_scalar(arg2)) + _cimg_mp_const_scalar(mem[arg1]==mem[arg2]); _cimg_mp_scalar2(mp_eq,arg1,arg2); } for (s = se3, ns = se2; s>ss; --s, --ns) if (*s=='<' && *ns=='=' && level[s - expr._data]==clevel) { // Less or equal than ('<=') _cimg_mp_op("Operator '<='"); - arg1 = compile(ss,s,depth1,0,is_critical); - arg2 = compile(s + 2,se,depth1,0,is_critical); + arg1 = compile(ss,s,depth1,0,block_flags); + arg2 = compile(s + 2,se,depth1,0,block_flags); _cimg_mp_check_type(arg2,2,3,_cimg_mp_size(arg1)); if (_cimg_mp_is_vector(arg1) && _cimg_mp_is_vector(arg2)) _cimg_mp_vector2_vv(mp_lte,arg1,arg2); if (_cimg_mp_is_vector(arg1) && _cimg_mp_is_scalar(arg2)) _cimg_mp_vector2_vs(mp_lte,arg1,arg2); if (_cimg_mp_is_scalar(arg1) && _cimg_mp_is_vector(arg2)) _cimg_mp_vector2_sv(mp_lte,arg1,arg2); - if (_cimg_mp_is_constant(arg1) && _cimg_mp_is_constant(arg2)) _cimg_mp_constant(mem[arg1]<=mem[arg2]); + if (_cimg_mp_is_const_scalar(arg1) && _cimg_mp_is_const_scalar(arg2)) + _cimg_mp_const_scalar(mem[arg1]<=mem[arg2]); if (arg1==arg2) _cimg_mp_return(1); _cimg_mp_scalar2(mp_lte,arg1,arg2); } @@ -18139,13 +18231,14 @@ namespace cimg_library_suffixed { for (s = se3, ns = se2; s>ss; --s, --ns) if (*s=='>' && *ns=='=' && level[s - expr._data]==clevel) { // Greater or equal than ('>=') _cimg_mp_op("Operator '>='"); - arg1 = compile(ss,s,depth1,0,is_critical); - arg2 = compile(s + 2,se,depth1,0,is_critical); + arg1 = compile(ss,s,depth1,0,block_flags); + arg2 = compile(s + 2,se,depth1,0,block_flags); _cimg_mp_check_type(arg2,2,3,_cimg_mp_size(arg1)); if (_cimg_mp_is_vector(arg1) && _cimg_mp_is_vector(arg2)) _cimg_mp_vector2_vv(mp_gte,arg1,arg2); if (_cimg_mp_is_vector(arg1) && _cimg_mp_is_scalar(arg2)) _cimg_mp_vector2_vs(mp_gte,arg1,arg2); if (_cimg_mp_is_scalar(arg1) && _cimg_mp_is_vector(arg2)) _cimg_mp_vector2_sv(mp_gte,arg1,arg2); - if (_cimg_mp_is_constant(arg1) && _cimg_mp_is_constant(arg2)) _cimg_mp_constant(mem[arg1]>=mem[arg2]); + if (_cimg_mp_is_const_scalar(arg1) && _cimg_mp_is_const_scalar(arg2)) + _cimg_mp_const_scalar(mem[arg1]>=mem[arg2]); if (arg1==arg2) _cimg_mp_return(1); _cimg_mp_scalar2(mp_gte,arg1,arg2); } @@ -18153,13 +18246,14 @@ namespace cimg_library_suffixed { for (s = se2, ns = se1, ps = se3; s>ss; --s, --ns, --ps) if (*s=='<' && *ns!='<' && *ps!='<' && level[s - expr._data]==clevel) { // Less than ('<') _cimg_mp_op("Operator '<'"); - arg1 = compile(ss,s,depth1,0,is_critical); - arg2 = compile(s + 1,se,depth1,0,is_critical); + arg1 = compile(ss,s,depth1,0,block_flags); + arg2 = compile(s + 1,se,depth1,0,block_flags); _cimg_mp_check_type(arg2,2,3,_cimg_mp_size(arg1)); if (_cimg_mp_is_vector(arg1) && _cimg_mp_is_vector(arg2)) _cimg_mp_vector2_vv(mp_lt,arg1,arg2); if (_cimg_mp_is_vector(arg1) && _cimg_mp_is_scalar(arg2)) _cimg_mp_vector2_vs(mp_lt,arg1,arg2); if (_cimg_mp_is_scalar(arg1) && _cimg_mp_is_vector(arg2)) _cimg_mp_vector2_sv(mp_lt,arg1,arg2); - if (_cimg_mp_is_constant(arg1) && _cimg_mp_is_constant(arg2)) _cimg_mp_constant(mem[arg1]ss; --s, --ns, --ps) if (*s=='>' && *ns!='>' && *ps!='>' && level[s - expr._data]==clevel) { // Greater than ('>') _cimg_mp_op("Operator '>'"); - arg1 = compile(ss,s,depth1,0,is_critical); - arg2 = compile(s + 1,se,depth1,0,is_critical); + arg1 = compile(ss,s,depth1,0,block_flags); + arg2 = compile(s + 1,se,depth1,0,block_flags); _cimg_mp_check_type(arg2,2,3,_cimg_mp_size(arg1)); if (_cimg_mp_is_vector(arg1) && _cimg_mp_is_vector(arg2)) _cimg_mp_vector2_vv(mp_gt,arg1,arg2); if (_cimg_mp_is_vector(arg1) && _cimg_mp_is_scalar(arg2)) _cimg_mp_vector2_vs(mp_gt,arg1,arg2); if (_cimg_mp_is_scalar(arg1) && _cimg_mp_is_vector(arg2)) _cimg_mp_vector2_sv(mp_gt,arg1,arg2); - if (_cimg_mp_is_constant(arg1) && _cimg_mp_is_constant(arg2)) _cimg_mp_constant(mem[arg1]>mem[arg2]); + if (_cimg_mp_is_const_scalar(arg1) && _cimg_mp_is_const_scalar(arg2)) + _cimg_mp_const_scalar(mem[arg1]>mem[arg2]); if (arg1==arg2) _cimg_mp_return(0); _cimg_mp_scalar2(mp_gt,arg1,arg2); } @@ -18181,8 +18276,8 @@ namespace cimg_library_suffixed { for (s = se3, ns = se2; s>ss; --s, --ns) if (*s=='<' && *ns=='<' && level[s - expr._data]==clevel) { // Left bit shift ('<<') _cimg_mp_op("Operator '<<'"); - arg1 = compile(ss,s,depth1,0,is_critical); - arg2 = compile(s + 2,se,depth1,0,is_critical); + arg1 = compile(ss,s,depth1,0,block_flags); + arg2 = compile(s + 2,se,depth1,0,block_flags); _cimg_mp_check_type(arg2,2,3,_cimg_mp_size(arg1)); if (_cimg_mp_is_vector(arg1) && _cimg_mp_is_vector(arg2)) _cimg_mp_vector2_vv(mp_bitwise_left_shift,arg1,arg2); @@ -18192,8 +18287,8 @@ namespace cimg_library_suffixed { } if (_cimg_mp_is_scalar(arg1) && _cimg_mp_is_vector(arg2)) _cimg_mp_vector2_sv(mp_bitwise_left_shift,arg1,arg2); - if (_cimg_mp_is_constant(arg1) && _cimg_mp_is_constant(arg2)) - _cimg_mp_constant((longT)mem[arg1]<<(unsigned int)mem[arg2]); + if (_cimg_mp_is_const_scalar(arg1) && _cimg_mp_is_const_scalar(arg2)) + _cimg_mp_const_scalar((longT)mem[arg1]<<(unsigned int)mem[arg2]); if (!arg1) _cimg_mp_return(0); if (!arg2) _cimg_mp_return(arg1); _cimg_mp_scalar2(mp_bitwise_left_shift,arg1,arg2); @@ -18202,8 +18297,8 @@ namespace cimg_library_suffixed { for (s = se3, ns = se2; s>ss; --s, --ns) if (*s=='>' && *ns=='>' && level[s - expr._data]==clevel) { // Right bit shift ('>>') _cimg_mp_op("Operator '>>'"); - arg1 = compile(ss,s,depth1,0,is_critical); - arg2 = compile(s + 2,se,depth1,0,is_critical); + arg1 = compile(ss,s,depth1,0,block_flags); + arg2 = compile(s + 2,se,depth1,0,block_flags); _cimg_mp_check_type(arg2,2,3,_cimg_mp_size(arg1)); if (_cimg_mp_is_vector(arg1) && _cimg_mp_is_vector(arg2)) _cimg_mp_vector2_vv(mp_bitwise_right_shift,arg1,arg2); @@ -18213,8 +18308,8 @@ namespace cimg_library_suffixed { } if (_cimg_mp_is_scalar(arg1) && _cimg_mp_is_vector(arg2)) _cimg_mp_vector2_sv(mp_bitwise_right_shift,arg1,arg2); - if (_cimg_mp_is_constant(arg1) && _cimg_mp_is_constant(arg2)) - _cimg_mp_constant((longT)mem[arg1]>>(unsigned int)mem[arg2]); + if (_cimg_mp_is_const_scalar(arg1) && _cimg_mp_is_const_scalar(arg2)) + _cimg_mp_const_scalar((longT)mem[arg1]>>(unsigned int)mem[arg2]); if (!arg1) _cimg_mp_return(0); if (!arg2) _cimg_mp_return(arg1); _cimg_mp_scalar2(mp_bitwise_right_shift,arg1,arg2); @@ -18227,15 +18322,16 @@ namespace cimg_library_suffixed { *(ps - 1)<='9')))) && level[s - expr._data]==clevel) { // Addition ('+') _cimg_mp_op("Operator '+'"); - arg1 = compile(ss,s,depth1,0,is_critical); - arg2 = compile(s + 1,se,depth1,0,is_critical); + arg1 = compile(ss,s,depth1,0,block_flags); + arg2 = compile(s + 1,se,depth1,0,block_flags); _cimg_mp_check_type(arg2,2,3,_cimg_mp_size(arg1)); if (!arg2) _cimg_mp_return(arg1); if (!arg1) _cimg_mp_return(arg2); if (_cimg_mp_is_vector(arg1) && _cimg_mp_is_vector(arg2)) _cimg_mp_vector2_vv(mp_add,arg1,arg2); if (_cimg_mp_is_vector(arg1) && _cimg_mp_is_scalar(arg2)) _cimg_mp_vector2_vs(mp_add,arg1,arg2); if (_cimg_mp_is_scalar(arg1) && _cimg_mp_is_vector(arg2)) _cimg_mp_vector2_sv(mp_add,arg1,arg2); - if (_cimg_mp_is_constant(arg1) && _cimg_mp_is_constant(arg2)) _cimg_mp_constant(mem[arg1] + mem[arg2]); + if (_cimg_mp_is_const_scalar(arg1) && _cimg_mp_is_const_scalar(arg2)) + _cimg_mp_const_scalar(mem[arg1] + mem[arg2]); if (code) { // Try to spot linear case 'a*b + c' CImg &pop = code.back(); if (pop[0]==(ulongT)mp_mul && _cimg_mp_is_comp(pop[1]) && (pop[1]==arg1 || pop[1]==arg2)) { @@ -18259,8 +18355,8 @@ namespace cimg_library_suffixed { *(ps - 1)<='9')))) && level[s - expr._data]==clevel) { // Subtraction ('-') _cimg_mp_op("Operator '-'"); - arg1 = compile(ss,s,depth1,0,is_critical); - arg2 = compile(s + 1,se,depth1,0,is_critical); + arg1 = compile(ss,s,depth1,0,block_flags); + arg2 = compile(s + 1,se,depth1,0,block_flags); _cimg_mp_check_type(arg2,2,3,_cimg_mp_size(arg1)); if (!arg2) _cimg_mp_return(arg1); if (_cimg_mp_is_vector(arg1) && _cimg_mp_is_vector(arg2)) _cimg_mp_vector2_vv(mp_sub,arg1,arg2); @@ -18269,7 +18365,8 @@ namespace cimg_library_suffixed { if (!arg1) _cimg_mp_vector1_v(mp_minus,arg2); _cimg_mp_vector2_sv(mp_sub,arg1,arg2); } - if (_cimg_mp_is_constant(arg1) && _cimg_mp_is_constant(arg2)) _cimg_mp_constant(mem[arg1] - mem[arg2]); + if (_cimg_mp_is_const_scalar(arg1) && _cimg_mp_is_const_scalar(arg2)) + _cimg_mp_const_scalar(mem[arg1] - mem[arg2]); if (!arg1) _cimg_mp_scalar1(mp_minus,arg2); if (code) { // Try to spot linear cases 'a*b - c' and 'c - a*b' CImg &pop = code.back(); @@ -18290,8 +18387,8 @@ namespace cimg_library_suffixed { for (s = se3, ns = se2; s>ss; --s, --ns) if (*s=='*' && *ns=='*' && level[s - expr._data]==clevel) { // Complex multiplication ('**') _cimg_mp_op("Operator '**'"); - arg1 = compile(ss,s,depth1,0,is_critical); - arg2 = compile(s + 2,se,depth1,0,is_critical); + arg1 = compile(ss,s,depth1,0,block_flags); + arg2 = compile(s + 2,se,depth1,0,block_flags); _cimg_mp_check_type(arg1,1,3,2); _cimg_mp_check_type(arg2,2,3,2); if (arg2==1) _cimg_mp_return(arg1); @@ -18299,11 +18396,13 @@ namespace cimg_library_suffixed { if (_cimg_mp_is_vector(arg1) && _cimg_mp_is_vector(arg2)) { pos = vector(2); CImg::vector((ulongT)mp_complex_mul,pos,arg1,arg2).move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } if (_cimg_mp_is_vector(arg1) && _cimg_mp_is_scalar(arg2)) _cimg_mp_vector2_vs(mp_mul,arg1,arg2); if (_cimg_mp_is_scalar(arg1) && _cimg_mp_is_vector(arg2)) _cimg_mp_vector2_sv(mp_mul,arg1,arg2); - if (_cimg_mp_is_constant(arg1) && _cimg_mp_is_constant(arg2)) _cimg_mp_constant(mem[arg1]*mem[arg2]); + if (_cimg_mp_is_const_scalar(arg1) && _cimg_mp_is_const_scalar(arg2)) + _cimg_mp_const_scalar(mem[arg1]*mem[arg2]); if (!arg1 || !arg2) _cimg_mp_return(0); _cimg_mp_scalar2(mp_mul,arg1,arg2); } @@ -18311,35 +18410,39 @@ namespace cimg_library_suffixed { for (s = se3, ns = se2; s>ss; --s, --ns) if (*s=='/' && *ns=='/' && level[s - expr._data]==clevel) { // Complex division ('//') _cimg_mp_op("Operator '//'"); - arg1 = compile(ss,s,depth1,0,is_critical); - arg2 = compile(s + 2,se,depth1,0,is_critical); + arg1 = compile(ss,s,depth1,0,block_flags); + arg2 = compile(s + 2,se,depth1,0,block_flags); _cimg_mp_check_type(arg1,1,3,2); _cimg_mp_check_type(arg2,2,3,2); if (arg2==1) _cimg_mp_return(arg1); if (_cimg_mp_is_vector(arg1) && _cimg_mp_is_vector(arg2)) { pos = vector(2); CImg::vector((ulongT)mp_complex_div_vv,pos,arg1,arg2).move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } if (_cimg_mp_is_vector(arg1) && _cimg_mp_is_scalar(arg2)) _cimg_mp_vector2_vs(mp_div,arg1,arg2); if (_cimg_mp_is_scalar(arg1) && _cimg_mp_is_vector(arg2)) { pos = vector(2); CImg::vector((ulongT)mp_complex_div_sv,pos,arg1,arg2).move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } - if (_cimg_mp_is_constant(arg1) && _cimg_mp_is_constant(arg2)) _cimg_mp_constant(mem[arg1]/mem[arg2]); + if (_cimg_mp_is_const_scalar(arg1) && _cimg_mp_is_const_scalar(arg2)) + _cimg_mp_const_scalar(mem[arg1]/mem[arg2]); if (!arg1) _cimg_mp_return(0); _cimg_mp_scalar2(mp_div,arg1,arg2); } for (s = se2; s>ss; --s) if (*s=='*' && level[s - expr._data]==clevel) { // Multiplication ('*') _cimg_mp_op("Operator '*'"); - arg1 = compile(ss,s,depth1,0,is_critical); - arg2 = compile(s + 1,se,depth1,0,is_critical); + arg1 = compile(ss,s,depth1,0,block_flags); + arg2 = compile(s + 1,se,depth1,0,block_flags); p2 = _cimg_mp_size(arg2); if (p2>0 && (ulongT)_cimg_mp_size(arg1)==(ulongT)p2*p2) { // Particular case of matrix multiplication pos = vector(p2); CImg::vector((ulongT)mp_matrix_mul,pos,arg1,arg2,p2,p2,1).move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } _cimg_mp_check_type(arg2,2,3,_cimg_mp_size(arg1)); @@ -18348,7 +18451,8 @@ namespace cimg_library_suffixed { if (_cimg_mp_is_vector(arg1) && _cimg_mp_is_vector(arg2)) _cimg_mp_vector2_vv(mp_mul,arg1,arg2); if (_cimg_mp_is_vector(arg1) && _cimg_mp_is_scalar(arg2)) _cimg_mp_vector2_vs(mp_mul,arg1,arg2); if (_cimg_mp_is_scalar(arg1) && _cimg_mp_is_vector(arg2)) _cimg_mp_vector2_sv(mp_mul,arg1,arg2); - if (_cimg_mp_is_constant(arg1) && _cimg_mp_is_constant(arg2)) _cimg_mp_constant(mem[arg1]*mem[arg2]); + if (_cimg_mp_is_const_scalar(arg1) && _cimg_mp_is_const_scalar(arg2)) + _cimg_mp_const_scalar(mem[arg1]*mem[arg2]); if (code) { // Try to spot double multiplication 'a*b*c' CImg &pop = code.back(); @@ -18367,14 +18471,15 @@ namespace cimg_library_suffixed { for (s = se2; s>ss; --s) if (*s=='/' && level[s - expr._data]==clevel) { // Division ('/') _cimg_mp_op("Operator '/'"); - arg1 = compile(ss,s,depth1,0,is_critical); - arg2 = compile(s + 1,se,depth1,0,is_critical); + arg1 = compile(ss,s,depth1,0,block_flags); + arg2 = compile(s + 1,se,depth1,0,block_flags); _cimg_mp_check_type(arg2,2,3,_cimg_mp_size(arg1)); if (arg2==1) _cimg_mp_return(arg1); if (_cimg_mp_is_vector(arg1) && _cimg_mp_is_vector(arg2)) _cimg_mp_vector2_vv(mp_div,arg1,arg2); if (_cimg_mp_is_vector(arg1) && _cimg_mp_is_scalar(arg2)) _cimg_mp_vector2_vs(mp_div,arg1,arg2); if (_cimg_mp_is_scalar(arg1) && _cimg_mp_is_vector(arg2)) _cimg_mp_vector2_sv(mp_div,arg1,arg2); - if (_cimg_mp_is_constant(arg1) && _cimg_mp_is_constant(arg2)) _cimg_mp_constant(mem[arg1]/mem[arg2]); + if (_cimg_mp_is_const_scalar(arg1) && _cimg_mp_is_const_scalar(arg2)) + _cimg_mp_const_scalar(mem[arg1]/mem[arg2]); if (!arg1) _cimg_mp_return(0); _cimg_mp_scalar2(mp_div,arg1,arg2); } @@ -18382,50 +18487,50 @@ namespace cimg_library_suffixed { for (s = se2, ns = se1; s>ss; --s, --ns) if (*s=='%' && *ns!='^' && level[s - expr._data]==clevel) { // Modulo ('%') _cimg_mp_op("Operator '%'"); - arg1 = compile(ss,s,depth1,0,is_critical); - arg2 = compile(s + 1,se,depth1,0,is_critical); + arg1 = compile(ss,s,depth1,0,block_flags); + arg2 = compile(s + 1,se,depth1,0,block_flags); _cimg_mp_check_type(arg2,2,3,_cimg_mp_size(arg1)); if (_cimg_mp_is_vector(arg1) && _cimg_mp_is_vector(arg2)) _cimg_mp_vector2_vv(mp_modulo,arg1,arg2); if (_cimg_mp_is_vector(arg1) && _cimg_mp_is_scalar(arg2)) _cimg_mp_vector2_vs(mp_modulo,arg1,arg2); if (_cimg_mp_is_scalar(arg1) && _cimg_mp_is_vector(arg2)) _cimg_mp_vector2_sv(mp_modulo,arg1,arg2); - if (_cimg_mp_is_constant(arg1) && _cimg_mp_is_constant(arg2)) - _cimg_mp_constant(cimg::mod(mem[arg1],mem[arg2])); + if (_cimg_mp_is_const_scalar(arg1) && _cimg_mp_is_const_scalar(arg2)) + _cimg_mp_const_scalar(cimg::mod(mem[arg1],mem[arg2])); _cimg_mp_scalar2(mp_modulo,arg1,arg2); } if (se1>ss) { if (*ss=='+' && (*ss1!='+' || (ss2='0' && *ss2<='9'))) { // Unary plus ('+') _cimg_mp_op("Operator '+'"); - _cimg_mp_return(compile(ss1,se,depth1,0,is_critical)); + _cimg_mp_return(compile(ss1,se,depth1,0,block_flags)); } if (*ss=='-' && (*ss1!='-' || (ss2='0' && *ss2<='9'))) { // Unary minus ('-') _cimg_mp_op("Operator '-'"); - arg1 = compile(ss1,se,depth1,0,is_critical); + arg1 = compile(ss1,se,depth1,0,block_flags); if (_cimg_mp_is_vector(arg1)) _cimg_mp_vector1_v(mp_minus,arg1); - if (_cimg_mp_is_constant(arg1)) _cimg_mp_constant(-mem[arg1]); + if (_cimg_mp_is_const_scalar(arg1)) _cimg_mp_const_scalar(-mem[arg1]); _cimg_mp_scalar1(mp_minus,arg1); } if (*ss=='!') { // Logical not ('!') _cimg_mp_op("Operator '!'"); if (*ss1=='!') { // '!!expr' optimized as 'bool(expr)' - arg1 = compile(ss2,se,depth1,0,is_critical); + arg1 = compile(ss2,se,depth1,0,block_flags); if (_cimg_mp_is_vector(arg1)) _cimg_mp_vector1_v(mp_bool,arg1); - if (_cimg_mp_is_constant(arg1)) _cimg_mp_constant((bool)mem[arg1]); + if (_cimg_mp_is_const_scalar(arg1)) _cimg_mp_const_scalar((bool)mem[arg1]); _cimg_mp_scalar1(mp_bool,arg1); } - arg1 = compile(ss1,se,depth1,0,is_critical); + arg1 = compile(ss1,se,depth1,0,block_flags); if (_cimg_mp_is_vector(arg1)) _cimg_mp_vector1_v(mp_logical_not,arg1); - if (_cimg_mp_is_constant(arg1)) _cimg_mp_constant(!mem[arg1]); + if (_cimg_mp_is_const_scalar(arg1)) _cimg_mp_const_scalar(!mem[arg1]); _cimg_mp_scalar1(mp_logical_not,arg1); } if (*ss=='~') { // Bitwise not ('~') _cimg_mp_op("Operator '~'"); - arg1 = compile(ss1,se,depth1,0,is_critical); + arg1 = compile(ss1,se,depth1,0,block_flags); if (_cimg_mp_is_vector(arg1)) _cimg_mp_vector1_v(mp_bitwise_not,arg1); - if (_cimg_mp_is_constant(arg1)) _cimg_mp_constant(~(unsigned int)mem[arg1]); + if (_cimg_mp_is_const_scalar(arg1)) _cimg_mp_const_scalar(~(unsigned int)mem[arg1]); _cimg_mp_scalar1(mp_bitwise_not,arg1); } } @@ -18433,47 +18538,43 @@ namespace cimg_library_suffixed { for (s = se3, ns = se2; s>ss; --s, --ns) if (*s=='^' && *ns=='^' && level[s - expr._data]==clevel) { // Complex power ('^^') _cimg_mp_op("Operator '^^'"); - arg1 = compile(ss,s,depth1,0,is_critical); - arg2 = compile(s + 2,se,depth1,0,is_critical); + arg1 = compile(ss,s,depth1,0,block_flags); + arg2 = compile(s + 2,se,depth1,0,block_flags); _cimg_mp_check_type(arg1,1,3,2); _cimg_mp_check_type(arg2,2,3,2); if (arg2==1) _cimg_mp_return(arg1); pos = vector(2); - if (_cimg_mp_is_vector(arg1) && _cimg_mp_is_vector(arg2)) { + if (_cimg_mp_is_vector(arg1) && _cimg_mp_is_vector(arg2)) CImg::vector((ulongT)mp_complex_pow_vv,pos,arg1,arg2).move_to(code); - _cimg_mp_return(pos); - } - if (_cimg_mp_is_vector(arg1) && _cimg_mp_is_scalar(arg2)) { + else if (_cimg_mp_is_vector(arg1) && _cimg_mp_is_scalar(arg2)) CImg::vector((ulongT)mp_complex_pow_vs,pos,arg1,arg2).move_to(code); - _cimg_mp_return(pos); - } - if (_cimg_mp_is_scalar(arg1) && _cimg_mp_is_vector(arg2)) { + else if (_cimg_mp_is_scalar(arg1) && _cimg_mp_is_vector(arg2)) CImg::vector((ulongT)mp_complex_pow_sv,pos,arg1,arg2).move_to(code); - _cimg_mp_return(pos); - } - CImg::vector((ulongT)mp_complex_pow_ss,pos,arg1,arg2).move_to(code); + else + CImg::vector((ulongT)mp_complex_pow_ss,pos,arg1,arg2).move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } for (s = se2; s>ss; --s) if (*s=='^' && level[s - expr._data]==clevel) { // Power ('^') _cimg_mp_op("Operator '^'"); - arg1 = compile(ss,s,depth1,0,is_critical); - arg2 = compile(s + 1,se,depth1,0,is_critical); + arg1 = compile(ss,s,depth1,0,block_flags); + arg2 = compile(s + 1,se,depth1,0,block_flags); _cimg_mp_check_type(arg2,2,3,_cimg_mp_size(arg1)); if (arg2==1) _cimg_mp_return(arg1); if (_cimg_mp_is_vector(arg1) && _cimg_mp_is_vector(arg2)) _cimg_mp_vector2_vv(mp_pow,arg1,arg2); if (_cimg_mp_is_vector(arg1) && _cimg_mp_is_scalar(arg2)) _cimg_mp_vector2_vs(mp_pow,arg1,arg2); if (_cimg_mp_is_scalar(arg1) && _cimg_mp_is_vector(arg2)) _cimg_mp_vector2_sv(mp_pow,arg1,arg2); - if (_cimg_mp_is_constant(arg1) && _cimg_mp_is_constant(arg2)) - _cimg_mp_constant(std::pow(mem[arg1],mem[arg2])); + if (_cimg_mp_is_const_scalar(arg1) && _cimg_mp_is_const_scalar(arg2)) + _cimg_mp_const_scalar(std::pow(mem[arg1],mem[arg2])); switch (arg2) { case 0 : _cimg_mp_return(1); case 2 : _cimg_mp_scalar1(mp_sqr,arg1); case 3 : _cimg_mp_scalar1(mp_pow3,arg1); case 4 : _cimg_mp_scalar1(mp_pow4,arg1); default : - if (_cimg_mp_is_constant(arg2)) { + if (_cimg_mp_is_const_scalar(arg2)) { if (mem[arg2]==0.5) { _cimg_mp_scalar1(mp_sqrt,arg1); } else if (mem[arg2]==0.25) { _cimg_mp_scalar1(mp_pow0_25,arg1); } } @@ -18483,15 +18584,24 @@ namespace cimg_library_suffixed { // Percentage computation. if (*se1=='%') { - arg1 = compile(ss,se1,depth1,0,is_critical); - arg2 = _cimg_mp_is_constant(arg1)?0:constant(100); + arg1 = compile(ss,se1,depth1,0,block_flags); + arg2 = _cimg_mp_is_const_scalar(arg1)?0:const_scalar(100); if (_cimg_mp_is_vector(arg1)) _cimg_mp_vector2_vs(mp_div,arg1,arg2); - if (_cimg_mp_is_constant(arg1)) _cimg_mp_constant(mem[arg1]/100); + if (_cimg_mp_is_const_scalar(arg1)) _cimg_mp_const_scalar(mem[arg1]/100); _cimg_mp_scalar2(mp_div,arg1,arg2); } + // Degree to radian postfix operator ('°' in UTF-8). + if (se2>ss && (unsigned char)*se2==0xC2 && (unsigned char)*se1==0xB0) { + arg1 = compile(ss,se2,depth1,0,block_flags); + if (_cimg_mp_is_vector(arg1)) _cimg_mp_vector1_v(mp_deg2rad,arg1); + if (_cimg_mp_is_const_scalar(arg1)) _cimg_mp_const_scalar(mem[arg1]*cimg::PI/180); + _cimg_mp_scalar1(mp_deg2rad,arg1); + } + + // Pre/post-decrement and increment. is_sth = ss1ss && (*se1=='+' || *se1=='-') && *se2==*se1)) { // Pre/post-decrement and increment + if (is_sth || (se2>ss && (*se1=='+' || *se1=='-') && *se2==*se1)) { if ((is_sth && *ss=='+') || (!is_sth && *se1=='+')) { _cimg_mp_op("Operator '++'"); op = mp_self_increment; @@ -18500,11 +18610,11 @@ namespace cimg_library_suffixed { op = mp_self_decrement; } ref.assign(7); - arg1 = is_sth?compile(ss2,se,depth1,ref,is_critical): - compile(ss,se2,depth1,ref,is_critical); // Variable slot + arg1 = is_sth?compile(ss2,se,depth1,ref,block_flags): + compile(ss,se2,depth1,ref,block_flags); // Variable slot // Apply operator on a copy to prevent modifying a constant or a variable. - if (*ref && (_cimg_mp_is_constant(arg1) || _cimg_mp_is_vector(arg1) || _cimg_mp_is_variable(arg1))) { + if (*ref && (_cimg_mp_is_const_scalar(arg1) || _cimg_mp_is_vector(arg1) || _cimg_mp_is_reserved(arg1))) { if (_cimg_mp_is_vector(arg1)) arg1 = vector_copy(arg1); else arg1 = scalar1(mp_copy,arg1); } @@ -18526,14 +18636,14 @@ namespace cimg_library_suffixed { } if (*ref==2) { // Image value (scalar): i/j[_#ind,off]++ - if (!is_critical) is_parallelizable = false; + if (!is_inside_critical) is_parallelizable = false; p1 = ref[1]; // Index is_relative = (bool)ref[2]; arg3 = ref[3]; // Offset if (is_sth && p_ref) std::memcpy(p_ref,ref,ref._width*sizeof(unsigned int)); CImg::vector((ulongT)op,arg1).move_to(code); if (p1!=~0U) { - if (!listout) _cimg_mp_return(pos); + if (!imglist) _cimg_mp_return(pos); CImg::vector((ulongT)(is_relative?mp_list_set_joff:mp_list_set_ioff), arg1,p1,arg3).move_to(code); } else { @@ -18545,7 +18655,7 @@ namespace cimg_library_suffixed { } if (*ref==3) { // Image value (scalar): i/j(_#ind,_x,_y,_z,_c)++ - if (!is_critical) is_parallelizable = false; + if (!is_inside_critical) is_parallelizable = false; p1 = ref[1]; // Index is_relative = (bool)ref[2]; arg3 = ref[3]; // X @@ -18555,7 +18665,7 @@ namespace cimg_library_suffixed { if (is_sth && p_ref) std::memcpy(p_ref,ref,ref._width*sizeof(unsigned int)); CImg::vector((ulongT)op,arg1).move_to(code); if (p1!=~0U) { - if (!listout) _cimg_mp_return(pos); + if (!imglist) _cimg_mp_return(pos); CImg::vector((ulongT)(is_relative?mp_list_set_jxyzc:mp_list_set_ixyzc), arg1,p1,arg3,arg4,arg5,arg6).move_to(code); } else { @@ -18567,14 +18677,14 @@ namespace cimg_library_suffixed { } if (*ref==4) { // Image value (vector): I/J[_#ind,off]++ - if (!is_critical) is_parallelizable = false; + if (!is_inside_critical) is_parallelizable = false; p1 = ref[1]; // Index is_relative = (bool)ref[2]; arg3 = ref[3]; // Offset if (is_sth && p_ref) std::memcpy(p_ref,ref,ref._width*sizeof(unsigned int)); self_vector_s(arg1,op==mp_self_increment?mp_self_add:mp_self_sub,1); if (p1!=~0U) { - if (!listout) _cimg_mp_return(pos); + if (!imglist) _cimg_mp_return(pos); CImg::vector((ulongT)(is_relative?mp_list_set_Joff_v:mp_list_set_Ioff_v), arg1,p1,arg3,_cimg_mp_size(arg1)).move_to(code); } else { @@ -18586,7 +18696,7 @@ namespace cimg_library_suffixed { } if (*ref==5) { // Image value (vector): I/J(_#ind,_x,_y,_z,_c)++ - if (!is_critical) is_parallelizable = false; + if (!is_inside_critical) is_parallelizable = false; p1 = ref[1]; // Index is_relative = (bool)ref[2]; arg3 = ref[3]; // X @@ -18595,7 +18705,7 @@ namespace cimg_library_suffixed { if (is_sth && p_ref) std::memcpy(p_ref,ref,ref._width*sizeof(unsigned int)); self_vector_s(arg1,op==mp_self_increment?mp_self_add:mp_self_sub,1); if (p1!=~0U) { - if (!listout) _cimg_mp_return(pos); + if (!imglist) _cimg_mp_return(pos); CImg::vector((ulongT)(is_relative?mp_list_set_Jxyz_v:mp_list_set_Ixyz_v), arg1,p1,arg3,arg4,arg5,_cimg_mp_size(arg1)).move_to(code); } else { @@ -18611,7 +18721,7 @@ namespace cimg_library_suffixed { _cimg_mp_return(pos); } - if (_cimg_mp_is_variable(arg1)) { // Scalar variable: s++ + if (_cimg_mp_is_reserved(arg1)) { // Scalar variable: s++ CImg::vector((ulongT)op,arg1).move_to(code); _cimg_mp_return(pos); } @@ -18624,11 +18734,10 @@ namespace cimg_library_suffixed { cimg::strellipsize(variable_name,64); throw CImgArgumentException("[" cimg_appname "_math_parser] " "CImg<%s>::%s: %s: Invalid %slvalue '%s', " - "in expression '%s%s%s'.", + "in expression '%s'.", pixel_type(),_cimg_mp_calling_function,s_op, - _cimg_mp_is_constant(arg1)?"const ":"", - variable_name._data, - s0>expr._data?"...":"",s0,se<&expr.back()?"...":""); + _cimg_mp_is_const_scalar(arg1)?"const ":"", + variable_name._data,s0); } // Array-like access to vectors and image values 'i/j/I/J[_#ind,offset,_boundary]' and 'vector[offset]'. @@ -18646,17 +18755,17 @@ namespace cimg_library_suffixed { !_cimg_mp_is_vector(reserved_label[(int)*ss]))) { // Image value as a vector if (*ss2=='#') { // Index specified s0 = ss3; while (s0::vector((ulongT)(is_relative?mp_Joff:mp_Ioff), pos,arg1,arg2==~0U?_cimg_mp_boundary:arg2,p2).move_to(code); } + return_new_comp = true; _cimg_mp_return(pos); } @@ -18690,64 +18800,63 @@ namespace cimg_library_suffixed { !_cimg_mp_is_vector(reserved_label[(int)*ss]))) { // Image value as a scalar if (*ss2=='#') { // Index specified s0 = ss3; while (s0ss && (*s0!='[' || level[s0 - expr._data]!=clevel)) --s0; if (s0>ss) { // Vector element - arg1 = compile(ss,s0,depth1,0,is_critical); + arg1 = compile(ss,s0,depth1,0,block_flags); if (_cimg_mp_is_scalar(arg1)) { variable_name.assign(ss,(unsigned int)(s0 - ss + 1)).back() = 0; _cimg_mp_strerr; cimg::strellipsize(variable_name,64); throw CImgArgumentException("[" cimg_appname "_math_parser] " "CImg<%s>::%s: %s: Array brackets used on non-vector variable '%s', " - "in expression '%s%s%s'.", + "in expression '%s'.", pixel_type(),_cimg_mp_calling_function,s_op, - variable_name._data, - s0>expr._data?"...":"",s0,se<&expr.back()?"...":""); - + variable_name._data,s0); } s1 = s0 + 1; while (s1 sub-vector extraction p1 = _cimg_mp_size(arg1); - arg2 = compile(++s0,s1,depth1,0,is_critical); // Starting index + arg2 = compile(++s0,s1,depth1,0,block_flags); // Starting index s0 = ++s1; while (s0::vector((ulongT)mp_vector_crop,pos,arg1,p1,arg2,arg3,arg4).move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } // One argument -> vector value reference - arg2 = compile(++s0,se1,depth1,0,is_critical); - if (_cimg_mp_is_constant(arg2)) { // Constant index + arg2 = compile(++s0,se1,depth1,0,block_flags); + if (_cimg_mp_is_const_scalar(arg2)) { // Constant index nb = (int)mem[arg2]; if (nb>=0 && nb<(int)_cimg_mp_size(arg1)) _cimg_mp_return(arg1 + 1 + nb); variable_name.assign(ss,(unsigned int)(s0 - ss)).back() = 0; @@ -18756,27 +18865,26 @@ namespace cimg_library_suffixed { throw CImgArgumentException("[" cimg_appname "_math_parser] " "CImg<%s>::%s: Out-of-bounds reference '%s[%d]' " "(vector '%s' has dimension %u), " - "in expression '%s%s%s'.", + "in expression '%s'.", pixel_type(),_cimg_mp_calling_function, variable_name._data,nb, - variable_name._data,_cimg_mp_size(arg1), - s0>expr._data?"...":"",s0,se<&expr.back()?"...":""); + variable_name._data,_cimg_mp_size(arg1),s0); } if (p_ref) { *p_ref = 1; p_ref[1] = arg1; p_ref[2] = arg2; - if (_cimg_mp_is_comp(arg2)) memtype[arg2] = -2; // Prevent from being used in further optimization + if (_cimg_mp_is_comp(arg2)) memtype[arg2] = -1; // Prevent from being used in further optimization } pos = scalar3(mp_vector_off,arg1,_cimg_mp_size(arg1),arg2); - memtype[pos] = -2; // Prevent from being used in further optimization + memtype[pos] = -1; // Prevent from being used in further optimization _cimg_mp_return(pos); } } // Look for a function call, an access to image value, or a parenthesis. if (*se1==')') { - if (*ss=='(') _cimg_mp_return(compile(ss1,se1,depth1,p_ref,is_critical)); // Simple parentheses + if (*ss=='(') _cimg_mp_return(compile(ss1,se1,depth1,p_ref,block_flags)); // Simple parentheses _cimg_mp_op("Value accessor '()'"); is_relative = *ss=='j' || *ss=='J'; s0 = s1 = std::strchr(ss,'('); if (s0) { do { --s1; } while (cimg::is_blank(*s1)); cimg::swap(*s0,*++s1); } @@ -18785,9 +18893,9 @@ namespace cimg_library_suffixed { if ((*ss=='I' || *ss=='J') && *ss1=='(') { // Image value as scalar if (*ss2=='#') { // Index specified s0 = ss3; while (s0::vector((ulongT)(*ss3=='0'?mp_arg0:mp_arg),0,0,p2,arg1,arg2).move_to(l_opcode); for (s = ++s2; s::vector(arg3).move_to(l_opcode); ++p3; @@ -19016,7 +19120,7 @@ namespace cimg_library_suffixed { } (l_opcode>'y').move_to(opcode); opcode[2] = opcode._height; - if (_cimg_mp_is_constant(arg1)) { + if (_cimg_mp_is_const_scalar(arg1)) { p3-=1; // Number of args if (*ss3=='0') arg1 = (unsigned int)(mem[arg1]<0?mem[arg1] + p3:mem[arg1] + 1); else arg1 = (unsigned int)(mem[arg1]<0?mem[arg1] + p3:mem[arg1]); @@ -19024,47 +19128,49 @@ namespace cimg_library_suffixed { if (p2) { pos = vector(p2); std::memset(&mem[pos] + 1,0,p2*sizeof(double)); + return_new_comp = true; _cimg_mp_return(pos); } else _cimg_mp_return(0); } pos = opcode[1] = p2?vector(p2):scalar(); opcode.move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } if (!std::strncmp(ss,"asin(",5)) { // Arcsin _cimg_mp_op("Function 'asin()'"); - arg1 = compile(ss5,se1,depth1,0,is_critical); + arg1 = compile(ss5,se1,depth1,0,block_flags); if (_cimg_mp_is_vector(arg1)) _cimg_mp_vector1_v(mp_asin,arg1); - if (_cimg_mp_is_constant(arg1)) _cimg_mp_constant(std::asin(mem[arg1])); + if (_cimg_mp_is_const_scalar(arg1)) _cimg_mp_const_scalar(std::asin(mem[arg1])); _cimg_mp_scalar1(mp_asin,arg1); } if (!std::strncmp(ss,"atan(",5)) { // Arctan _cimg_mp_op("Function 'atan()'"); - arg1 = compile(ss5,se1,depth1,0,is_critical); + arg1 = compile(ss5,se1,depth1,0,block_flags); if (_cimg_mp_is_vector(arg1)) _cimg_mp_vector1_v(mp_atan,arg1); - if (_cimg_mp_is_constant(arg1)) _cimg_mp_constant(std::atan(mem[arg1])); + if (_cimg_mp_is_const_scalar(arg1)) _cimg_mp_const_scalar(std::atan(mem[arg1])); _cimg_mp_scalar1(mp_atan,arg1); } if (!std::strncmp(ss,"atan2(",6)) { // Arctan2 _cimg_mp_op("Function 'atan2()'"); s1 = ss6; while (s1::vector((ulongT)mp_break,_cimg_mp_slot_nan).move_to(code); _cimg_mp_return_nan(); @@ -19081,33 +19187,41 @@ namespace cimg_library_suffixed { if (!std::strncmp(ss,"bool(",5)) { // Boolean cast _cimg_mp_op("Function 'bool()'"); - arg1 = compile(ss5,se1,depth1,0,is_critical); + arg1 = compile(ss5,se1,depth1,0,block_flags); if (_cimg_mp_is_vector(arg1)) _cimg_mp_vector1_v(mp_bool,arg1); - if (_cimg_mp_is_constant(arg1)) _cimg_mp_constant((bool)mem[arg1]); + if (_cimg_mp_is_const_scalar(arg1)) _cimg_mp_const_scalar((bool)mem[arg1]); _cimg_mp_scalar1(mp_bool,arg1); } if (!std::strncmp(ss,"begin(",6)) { // Begin _cimg_mp_op("Function 'begin()'"); - code.swap(code_begin); - arg1 = compile(ss6,se1,depth1,p_ref,true); - code.swap(code_begin); - _cimg_mp_return(arg1); + s1 = ss6; while (s1::vector((ulongT)mp_complex_conj,pos,arg1,0).move_to(code); else CImg::vector((ulongT)mp_complex_conj,pos,arg1 + 1,arg1 + 2).move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } if (!std::strncmp(ss,"ceil(",5)) { // Ceil _cimg_mp_op("Function 'ceil()'"); - arg1 = compile(ss5,se1,depth1,0,is_critical); + arg1 = compile(ss5,se1,depth1,0,block_flags); if (_cimg_mp_is_vector(arg1)) _cimg_mp_vector1_v(mp_ceil,arg1); - if (_cimg_mp_is_constant(arg1)) _cimg_mp_constant(std::ceil(mem[arg1])); + if (_cimg_mp_is_const_scalar(arg1)) _cimg_mp_const_scalar(std::ceil(mem[arg1])); _cimg_mp_scalar1(mp_ceil,arg1); } if (!std::strncmp(ss,"cexp(",5)) { // Complex exponential _cimg_mp_op("Function 'cexp()'"); - arg1 = compile(ss5,se1,depth1,0,is_critical); + arg1 = compile(ss5,se1,depth1,0,block_flags); _cimg_mp_check_type(arg1,0,3,2); pos = vector(2); if (_cimg_mp_is_scalar(arg1)) CImg::vector((ulongT)mp_complex_exp,pos,arg1,0).move_to(code); else CImg::vector((ulongT)mp_complex_exp,pos,arg1 + 1,arg1 + 2).move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } if (!std::strncmp(ss,"clog(",5)) { // Complex logarithm _cimg_mp_op("Function 'clog()'"); - arg1 = compile(ss5,se1,depth1,0,is_critical); + arg1 = compile(ss5,se1,depth1,0,block_flags); _cimg_mp_check_type(arg1,0,3,2); pos = vector(2); if (_cimg_mp_is_scalar(arg1)) CImg::vector((ulongT)mp_complex_log,pos,arg1,0).move_to(code); else CImg::vector((ulongT)mp_complex_log,pos,arg1 + 1,arg1 + 2).move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } if (!std::strncmp(ss,"ccos(",5)) { // Complex cosine _cimg_mp_op("Function 'ccos()'"); - arg1 = compile(ss5,se1,depth1,0,is_critical); + arg1 = compile(ss5,se1,depth1,0,block_flags); _cimg_mp_check_type(arg1,0,3,2); pos = vector(2); if (_cimg_mp_is_scalar(arg1)) CImg::vector((ulongT)mp_complex_cos,pos,arg1,0).move_to(code); else CImg::vector((ulongT)mp_complex_cos,pos,arg1 + 1,arg1 + 2).move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } if (!std::strncmp(ss,"csin(",5)) { // Complex sine _cimg_mp_op("Function 'csin()'"); - arg1 = compile(ss5,se1,depth1,0,is_critical); + arg1 = compile(ss5,se1,depth1,0,block_flags); _cimg_mp_check_type(arg1,0,3,2); pos = vector(2); if (_cimg_mp_is_scalar(arg1)) CImg::vector((ulongT)mp_complex_sin,pos,arg1,0).move_to(code); else CImg::vector((ulongT)mp_complex_sin,pos,arg1 + 1,arg1 + 2).move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } if (!std::strncmp(ss,"ctan(",5)) { // Complex tangent _cimg_mp_op("Function 'ctan()'"); - arg1 = compile(ss5,se1,depth1,0,is_critical); + arg1 = compile(ss5,se1,depth1,0,block_flags); _cimg_mp_check_type(arg1,0,3,2); pos = vector(2); if (_cimg_mp_is_scalar(arg1)) CImg::vector((ulongT)mp_complex_tan,pos,arg1,0).move_to(code); else CImg::vector((ulongT)mp_complex_tan,pos,arg1 + 1,arg1 + 2).move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } if (!std::strncmp(ss,"ccosh(",6)) { // Complex hyperbolic cosine _cimg_mp_op("Function 'ccosh()'"); - arg1 = compile(ss6,se1,depth1,0,is_critical); + arg1 = compile(ss6,se1,depth1,0,block_flags); _cimg_mp_check_type(arg1,0,3,2); pos = vector(2); if (_cimg_mp_is_scalar(arg1)) CImg::vector((ulongT)mp_complex_cosh,pos,arg1,0).move_to(code); else CImg::vector((ulongT)mp_complex_cosh,pos,arg1 + 1,arg1 + 2).move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } if (!std::strncmp(ss,"csinh(",6)) { // Complex hyperbolic sine _cimg_mp_op("Function 'csinh()'"); - arg1 = compile(ss6,se1,depth1,0,is_critical); + arg1 = compile(ss6,se1,depth1,0,block_flags); _cimg_mp_check_type(arg1,0,3,2); pos = vector(2); if (_cimg_mp_is_scalar(arg1)) CImg::vector((ulongT)mp_complex_sinh,pos,arg1,0).move_to(code); else CImg::vector((ulongT)mp_complex_sinh,pos,arg1 + 1,arg1 + 2).move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } if (!std::strncmp(ss,"ctanh(",6)) { // Complex hyperbolic tangent _cimg_mp_op("Function 'ctanh()'"); - arg1 = compile(ss6,se1,depth1,0,is_critical); + arg1 = compile(ss6,se1,depth1,0,block_flags); _cimg_mp_check_type(arg1,0,3,2); pos = vector(2); if (_cimg_mp_is_scalar(arg1)) CImg::vector((ulongT)mp_complex_tanh,pos,arg1,0).move_to(code); else CImg::vector((ulongT)mp_complex_tanh,pos,arg1 + 1,arg1 + 2).move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } @@ -19238,20 +19361,20 @@ namespace cimg_library_suffixed { _cimg_mp_op("Function 'copy()'"); ref.assign(14); s1 = ss5; while (s1=4 && arg4==~0U) arg4 = scalar1(mp_image_whd,ref[1]); } if (_cimg_mp_is_vector(arg2)) { - if (arg3==~0U) arg3 = constant(_cimg_mp_size(arg2)); + if (arg3==~0U) arg3 = const_scalar(_cimg_mp_size(arg2)); if (!ref[7]) ++arg2; if (ref[7]>=4 && arg5==~0U) arg5 = scalar1(mp_image_whd,ref[8]); } @@ -19274,189 +19397,289 @@ namespace cimg_library_suffixed { CImg(1,22).move_to(code); code.back().get_shared_rows(0,7).fill((ulongT)mp_memcopy,p1,arg1,arg2,arg3,arg4,arg5,arg6); code.back().get_shared_rows(8,21).fill(ref); - _cimg_mp_return(p1); + _cimg_mp_return_nan(); } if (!std::strncmp(ss,"cos(",4)) { // Cosine _cimg_mp_op("Function 'cos()'"); - arg1 = compile(ss4,se1,depth1,0,is_critical); + arg1 = compile(ss4,se1,depth1,0,block_flags); if (_cimg_mp_is_vector(arg1)) _cimg_mp_vector1_v(mp_cos,arg1); - if (_cimg_mp_is_constant(arg1)) _cimg_mp_constant(std::cos(mem[arg1])); + if (_cimg_mp_is_const_scalar(arg1)) _cimg_mp_const_scalar(std::cos(mem[arg1])); _cimg_mp_scalar1(mp_cos,arg1); } if (!std::strncmp(ss,"cosh(",5)) { // Hyperbolic cosine _cimg_mp_op("Function 'cosh()'"); - arg1 = compile(ss5,se1,depth1,0,is_critical); + arg1 = compile(ss5,se1,depth1,0,block_flags); if (_cimg_mp_is_vector(arg1)) _cimg_mp_vector1_v(mp_cosh,arg1); - if (_cimg_mp_is_constant(arg1)) _cimg_mp_constant(std::cosh(mem[arg1])); + if (_cimg_mp_is_const_scalar(arg1)) _cimg_mp_const_scalar(std::cosh(mem[arg1])); _cimg_mp_scalar1(mp_cosh,arg1); } + if (!std::strncmp(ss,"cov(",4)) { // Covariance + _cimg_mp_op("Function 'cov()'"); + s1 = ss4; while (s1::vector((ulongT)mp_critical,arg1,code._width - p1).move_to(code,p1); _cimg_mp_return(arg1); } - if (!std::strncmp(ss,"crop(",5)) { // Image crop + if (!std::strncmp(ss,"crop(",5)) { // Image or vector crop _cimg_mp_op("Function 'crop()'"); + is_sth = false; // is image crop ? if (*ss5=='#') { // Index specified s0 = ss6; while (s0::sequence(_cimg_mp_size(arg1),arg1 + 1, - arg1 + (ulongT)_cimg_mp_size(arg1)); - opcode.resize(1,std::min(opcode._height,4U),1,1,0).move_to(l_opcode); - is_sth = true; - } else { - _cimg_mp_check_type(arg1,pos + 1,1,0); - CImg::vector(arg1).move_to(l_opcode); - } + arg1 = compile(s,ns,depth1,0,block_flags); + if (pos==1 && _cimg_mp_is_scalar(arg1)) is_sth = true; + else if (pos>1) _cimg_mp_check_type(arg1,pos,1,0); + CImg::vector(arg1).move_to(l_opcode); s = ns; } (l_opcode>'y').move_to(opcode); - arg1 = 0; arg2 = (p1!=~0U); - switch (opcode._height) { - case 0 : case 1 : - CImg::vector(0,0,0,0,~0U,~0U,~0U,~0U,0).move_to(opcode); - break; - case 2 : - CImg::vector(*opcode,0,0,0,opcode[1],~0U,~0U,~0U,_cimg_mp_boundary).move_to(opcode); - arg1 = arg2 + 2; - break; - case 3 : - CImg::vector(*opcode,0,0,0,opcode[1],~0U,~0U,~0U,opcode[2]).move_to(opcode); - arg1 = arg2 + 2; - break; - case 4 : - CImg::vector(*opcode,opcode[1],0,0,opcode[2],opcode[3],~0U,~0U,_cimg_mp_boundary). - move_to(opcode); - arg1 = arg2 + (is_sth?2:3); - break; - case 5 : - CImg::vector(*opcode,opcode[1],0,0,opcode[2],opcode[3],~0U,~0U,opcode[4]). - move_to(opcode); - arg1 = arg2 + (is_sth?2:3); - break; - case 6 : - CImg::vector(*opcode,opcode[1],opcode[2],0,opcode[3],opcode[4],opcode[5],~0U, - _cimg_mp_boundary).move_to(opcode); - arg1 = arg2 + (is_sth?2:4); - break; - case 7 : - CImg::vector(*opcode,opcode[1],opcode[2],0,opcode[3],opcode[4],opcode[5],~0U, - opcode[6]).move_to(opcode); - arg1 = arg2 + (is_sth?2:4); - break; - case 8 : - CImg::vector(*opcode,opcode[1],opcode[2],opcode[3],opcode[4],opcode[5],opcode[6], - opcode[7],_cimg_mp_boundary).move_to(opcode); - arg1 = arg2 + (is_sth?2:5); - break; - case 9 : - arg1 = arg2 + (is_sth?2:5); - break; - default : // Error -> too much arguments - _cimg_mp_strerr; - throw CImgArgumentException("[" cimg_appname "_math_parser] " - "CImg<%s>::%s: %s: Too much arguments specified, " - "in expression '%s%s%s'.", - pixel_type(),_cimg_mp_calling_function,s_op, - s0>expr._data?"...":"",s0,se<&expr.back()?"...":""); - } - - _cimg_mp_check_type((unsigned int)*opcode,arg2 + 1,1,0); - _cimg_mp_check_type((unsigned int)opcode[1],arg2 + 1 + (is_sth?0:1),1,0); - _cimg_mp_check_type((unsigned int)opcode[2],arg2 + 1 + (is_sth?0:2),1,0); - _cimg_mp_check_type((unsigned int)opcode[3],arg2 + 1 + (is_sth?0:3),1,0); - if (opcode[4]!=(ulongT)~0U) { - _cimg_mp_check_constant((unsigned int)opcode[4],arg1,3); - opcode[4] = (ulongT)mem[opcode[4]]; - } - if (opcode[5]!=(ulongT)~0U) { - _cimg_mp_check_constant((unsigned int)opcode[5],arg1 + 1,3); - opcode[5] = (ulongT)mem[opcode[5]]; - } - if (opcode[6]!=(ulongT)~0U) { - _cimg_mp_check_constant((unsigned int)opcode[6],arg1 + 2,3); - opcode[6] = (ulongT)mem[opcode[6]]; - } - if (opcode[7]!=(ulongT)~0U) { - _cimg_mp_check_constant((unsigned int)opcode[7],arg1 + 3,3); - opcode[7] = (ulongT)mem[opcode[7]]; - } - _cimg_mp_check_type((unsigned int)opcode[8],arg1 + 4,1,0); - - if (opcode[4]==(ulongT)~0U || opcode[5]==(ulongT)~0U || - opcode[6]==(ulongT)~0U || opcode[7]==(ulongT)~0U) { - p2 = 0; - if (p1!=~0U) { - _cimg_mp_check_constant(p1,1,1); - p2 = (unsigned int)cimg::mod((int)mem[p1],listin.width()); - } - const CImg &img = p1!=~0U?listin[p2]:imgin; - if (!img) { + if (!opcode || is_sth) { // Image crop + arg1 = 0; arg2 = (p1!=~0U); + switch (opcode._height) { + case 0 : case 1 : + CImg::vector(0,0,0,0,~0U,~0U,~0U,~0U,0).move_to(opcode); + break; + case 2 : + CImg::vector(*opcode,0,0,0,opcode[1],~0U,~0U,~0U,_cimg_mp_boundary).move_to(opcode); + arg1 = 2 + arg2; break; + case 3 : + CImg::vector(*opcode,0,0,0,opcode[1],~0U,~0U,~0U,opcode[2]).move_to(opcode); + arg1 = 2 + arg2; break; + case 4 : + CImg::vector(*opcode,opcode[1],0,0,opcode[2],opcode[3],~0U,~0U,_cimg_mp_boundary). + move_to(opcode); + arg1 = 3 + arg2; break; + case 5 : + CImg::vector(*opcode,opcode[1],0,0,opcode[2],opcode[3],~0U,~0U,opcode[4]). + move_to(opcode); + arg1 = 3 + arg2; break; + case 6 : + CImg::vector(*opcode,opcode[1],opcode[2],0,opcode[3],opcode[4],opcode[5],~0U, + _cimg_mp_boundary).move_to(opcode); + arg1 = 4 + arg2; break; + case 7 : + CImg::vector(*opcode,opcode[1],opcode[2],0,opcode[3],opcode[4],opcode[5],~0U, + opcode[6]).move_to(opcode); + arg1 = 4 + arg2; break; + case 8 : + CImg::vector(*opcode,opcode[1],opcode[2],opcode[3],opcode[4],opcode[5],opcode[6], + opcode[7],_cimg_mp_boundary).move_to(opcode); + arg1 = 5 + arg2; break; + case 9 : + arg1 = 5 + arg2; break; + default : // Error -> too much arguments _cimg_mp_strerr; throw CImgArgumentException("[" cimg_appname "_math_parser] " - "CImg<%s>::%s: %s: Cannot crop empty image when " - "some xyzc-coordinates are unspecified, in expression '%s%s%s'.", - pixel_type(),_cimg_mp_calling_function,s_op, - s0>expr._data?"...":"",s0,se<&expr.back()?"...":""); + "CImg<%s>::%s: %s: Too much arguments specified, " + "in expression '%s'.", + pixel_type(),_cimg_mp_calling_function,s_op,s0); } - if (opcode[4]==(ulongT)~0U) opcode[4] = (ulongT)img._width; - if (opcode[5]==(ulongT)~0U) opcode[5] = (ulongT)img._height; - if (opcode[6]==(ulongT)~0U) opcode[6] = (ulongT)img._depth; - if (opcode[7]==(ulongT)~0U) opcode[7] = (ulongT)img._spectrum; - } - pos = vector((unsigned int)(opcode[4]*opcode[5]*opcode[6]*opcode[7])); - CImg::vector((ulongT)mp_crop, - pos,p1, - *opcode,opcode[1],opcode[2],opcode[3], - opcode[4],opcode[5],opcode[6],opcode[7], - opcode[8]).move_to(code); + if (opcode[4]!=(ulongT)~0U) { + _cimg_mp_check_const_scalar((unsigned int)opcode[4],arg1,3); + opcode[4] = (ulongT)mem[opcode[4]]; + } + if (opcode[5]!=(ulongT)~0U) { + _cimg_mp_check_const_scalar((unsigned int)opcode[5],arg1 + 1,3); + opcode[5] = (ulongT)mem[opcode[5]]; + } + if (opcode[6]!=(ulongT)~0U) { + _cimg_mp_check_const_scalar((unsigned int)opcode[6],arg1 + 2,3); + opcode[6] = (ulongT)mem[opcode[6]]; + } + if (opcode[7]!=(ulongT)~0U) { + _cimg_mp_check_const_scalar((unsigned int)opcode[7],arg1 + 3,3); + opcode[7] = (ulongT)mem[opcode[7]]; + } + _cimg_mp_check_type((unsigned int)opcode[8],arg1 + 4,1,0); + + if (opcode[4]==(ulongT)~0U || opcode[5]==(ulongT)~0U || + opcode[6]==(ulongT)~0U || opcode[7]==(ulongT)~0U) { + p2 = 0; + if (p1!=~0U) { + _cimg_mp_check_const_scalar(p1,1,1); + p2 = (unsigned int)cimg::mod((int)mem[p1],imglist.width()); + } + const CImg &img = p1!=~0U?imglist[p2]:imgin; + if (!img) { + _cimg_mp_strerr; + throw CImgArgumentException("[" cimg_appname "_math_parser] " + "CImg<%s>::%s: %s: Cannot crop empty image when " + "some xyzc-coordinates are unspecified, in expression '%s'.", + pixel_type(),_cimg_mp_calling_function,s_op,s0); + } + if (opcode[4]==(ulongT)~0U) opcode[4] = (ulongT)img._width; + if (opcode[5]==(ulongT)~0U) opcode[5] = (ulongT)img._height; + if (opcode[6]==(ulongT)~0U) opcode[6] = (ulongT)img._depth; + if (opcode[7]==(ulongT)~0U) opcode[7] = (ulongT)img._spectrum; + } + + pos = vector((unsigned int)(opcode[4]*opcode[5]*opcode[6]*opcode[7])); + CImg::vector((ulongT)mp_image_crop, + pos,p1, // 1-2: res,#ind + *opcode,opcode[1],opcode[2],opcode[3], // 3-6: x,y,z,c + opcode[4],opcode[5],opcode[6],opcode[7], // 7-10: dx,dy,dz,dc + opcode[8]).move_to(code); // 11: boundary conditions + + } else { // Vector crop + switch (opcode._height) { + case 5 : case 6 : + CImg::vector(*opcode,opcode[1],opcode[2],opcode[3],opcode[4], + 0,0,0,0,~0U,~0U,~0U,~0U,0).move_to(opcode); + break; + case 7 : + CImg::vector(*opcode,opcode[1],opcode[2],opcode[3],opcode[4], + opcode[5],0,0,0,opcode[6],~0U,~0U,~0U,_cimg_mp_boundary).move_to(opcode); + arg1 = 7; break; + case 8 : + CImg::vector(*opcode,opcode[1],opcode[2],opcode[3],opcode[4], + opcode[5],0,0,0,opcode[6],~0U,~0U,~0U,opcode[7]).move_to(opcode); + arg1 = 7; break; + case 9 : + CImg::vector(*opcode,opcode[1],opcode[2],opcode[3],opcode[4], + opcode[5],opcode[6],0,0,opcode[7],opcode[8],~0U,~0U,_cimg_mp_boundary). + move_to(opcode); + arg1 = 8; break; + case 10 : + CImg::vector(*opcode,opcode[1],opcode[2],opcode[3],opcode[4], + opcode[5],opcode[6],0,0,opcode[7],opcode[8],~0U,~0U,opcode[9]). + move_to(opcode); + arg1 = 8; break; + case 11 : + CImg::vector(*opcode,opcode[1],opcode[2],opcode[3],opcode[4], + opcode[5],opcode[6],opcode[7],0,opcode[8],opcode[9],opcode[10],~0U, + _cimg_mp_boundary).move_to(opcode); + arg1 = 9; break; + case 12 : + CImg::vector(*opcode,opcode[1],opcode[2],opcode[3],opcode[4], + opcode[5],opcode[6],opcode[7],0,opcode[8],opcode[9],opcode[10],~0U, + opcode[11]).move_to(opcode); + arg1 = 9; break; + case 13 : + CImg::vector(*opcode,opcode[1],opcode[2],opcode[3],opcode[4], + opcode[5],opcode[6],opcode[7],opcode[8],opcode[9],opcode[10],opcode[11], + opcode[12],_cimg_mp_boundary).move_to(opcode); + arg1 = 10; break; + case 14 : + arg1 = 10; break; + default : // Error -> too few or too much arguments + _cimg_mp_strerr; + throw CImgArgumentException("[" cimg_appname "_math_parser] " + "CImg<%s>::%s: %s: Too %s arguments specified, " + "in expression '%s'.", + pixel_type(),_cimg_mp_calling_function,s_op, + opcode._height<5?"few":"much",s0); + } + + _cimg_mp_check_const_scalar((unsigned int)opcode[1],2,3); // w + opcode[1] = (ulongT)mem[opcode[1]]; + _cimg_mp_check_const_scalar((unsigned int)opcode[2],3,3); // h + opcode[2] = (ulongT)mem[opcode[2]]; + _cimg_mp_check_const_scalar((unsigned int)opcode[3],4,3); // d + opcode[3] = (ulongT)mem[opcode[3]]; + _cimg_mp_check_const_scalar((unsigned int)opcode[4],5,3); // s + opcode[4] = (ulongT)mem[opcode[4]]; + p1 = _cimg_mp_size((unsigned int)opcode[0]); + arg2 = (unsigned int)opcode[1]; + arg3 = (unsigned int)opcode[2]; + arg4 = (unsigned int)opcode[3]; + arg5 = (unsigned int)opcode[4]; + if (arg2*arg3*arg4*arg5!=p1) + throw CImgArgumentException("[" cimg_appname "_math_parser] " + "CImg<%s>::%s: %s: Input vector size (%lu values) and its specified " + "geometry (%u,%u,%u,%u) (%lu values) do not match.", + pixel_type(),_cimg_mp_calling_function,s_op, + p1,arg2,arg3,arg4,arg5,(ulongT)arg2*arg3*arg4*arg5); + + if (opcode[9]!=(ulongT)~0U) { + _cimg_mp_check_const_scalar((unsigned int)opcode[9],arg1,3); + opcode[9] = (ulongT)mem[opcode[9]]; + } else opcode[9] = opcode[1]; + if (opcode[10]!=(ulongT)~0U) { + _cimg_mp_check_const_scalar((unsigned int)opcode[10],arg1 + 1,3); + opcode[10] = (ulongT)mem[opcode[10]]; + } else opcode[10] = opcode[2]; + if (opcode[11]!=(ulongT)~0U) { + _cimg_mp_check_const_scalar((unsigned int)opcode[11],arg1 + 2,3); + opcode[11] = (ulongT)mem[opcode[11]]; + } else opcode[11] = opcode[3]; + if (opcode[12]!=(ulongT)~0U) { + _cimg_mp_check_const_scalar((unsigned int)opcode[12],arg1 + 3,3); + opcode[12] = (ulongT)mem[opcode[12]]; + } else opcode[12] = opcode[4]; + _cimg_mp_check_type((unsigned int)opcode[13],arg1 + 4,1,0); + + pos = vector((unsigned int)(opcode[9]*opcode[10]*opcode[11]*opcode[12])); + CImg::vector((ulongT)mp_vector_crop_ext, + pos,*opcode, // 1-2: res,S + opcode[1],opcode[2],opcode[3],opcode[4], // 3-6: w,h,d,s + opcode[5],opcode[6],opcode[7],opcode[8], // 7-10: x,y,z,c + opcode[9],opcode[10],opcode[11],opcode[12], // 11-14: dx,dy,dz,dc + opcode[13]).move_to(code); // 15: boundary conditions + } + return_new_comp = true; _cimg_mp_return(pos); } if (!std::strncmp(ss,"cross(",6)) { // Cross product _cimg_mp_op("Function 'cross()'"); s1 = ss6; while (s1::vector((ulongT)mp_cross,pos,arg1,arg2).move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } if (!std::strncmp(ss,"cut(",4)) { // Cut _cimg_mp_op("Function 'cut()'"); s1 = ss4; while (s1val2?val2:val); + _cimg_mp_const_scalar(valval2?val2:val); } _cimg_mp_scalar3(mp_cut,arg1,arg2,arg3); } @@ -19469,11 +19692,12 @@ namespace cimg_library_suffixed { 0,0,0,0,0, // [2]=A, [3]=wA, [4]=hA, [5]=dA, [6]=sA 0,0,0,0,0, // [7]=M, [8]=wM, [9]=hM, [10]=dM, [11]=sM 1,0,1, // [12]=boundary_conditions, [13]=is_normalized, [14]=chan._mode - 11,11,11, // [15]=xcenter, [16]=ycenter, [17]=zcenter (default value:-1) + ~0U,~0U,~0U, // [15]=xcenter, [16]=ycenter, [17]=zcenter 0,0,0, // [18]=xstart, [19]=ystart, [20]=zstart - 11,11,11, // [21]=xend, [22]=yend, [23]=zend (default value: -1) + ~0U,~0U,~0U, // [21]=xend, [22]=yend, [23]=zend 1,1,1, // [24]=xstride, [25]=ystride, [26]=zstride - 1,1,1 }; // [27]=xdilation, [28]=ydilation, [29]=zdilation + 1,1,1, // [27]=xdilation, [28]=ydilation, [29]=zdilation, + 0 }; // [30]=interpolation_type l_opcode.assign(); // Don't use 'opcode': it could be modified by further calls to 'compile()'! CImg(default_params,1,sizeof(default_params)/sizeof(ulongT)).move_to(l_opcode); @@ -19482,47 +19706,47 @@ namespace cimg_library_suffixed { for (s = std::strchr(ss,'(') + 1; s=opcode._height) { + if (arg1<12 || arg1>opcode._height) { _cimg_mp_strerr; throw CImgArgumentException("[" cimg_appname "_math_parser] " - "CImg<%s>::%s: %s: %s arguments provided, in expression '%s%s%s'.", + "CImg<%s>::%s: %s: %s arguments provided, in expression '%s'.", pixel_type(),_cimg_mp_calling_function,s_op, - arg1<12?"Not enough":"Too much", - s0>expr._data?"...":"",s0,se<&expr.back()?"...":""); + arg1<12?"Not enough":"Too much",s0); } _cimg_mp_check_type(opcode[2],1,2,0); // A - _cimg_mp_check_constant(opcode[3],2,3); // wA - _cimg_mp_check_constant(opcode[4],3,3); // hA - _cimg_mp_check_constant(opcode[5],4,3); // dA - _cimg_mp_check_constant(opcode[6],5,3); // sA + _cimg_mp_check_const_scalar(opcode[3],2,3); // wA + _cimg_mp_check_const_scalar(opcode[4],3,3); // hA + _cimg_mp_check_const_scalar(opcode[5],4,3); // dA + _cimg_mp_check_const_scalar(opcode[6],5,3); // sA _cimg_mp_check_type(opcode[7],6,2,0); // M - _cimg_mp_check_constant(opcode[8],7,3); // wM - _cimg_mp_check_constant(opcode[9],8,3); // hM - _cimg_mp_check_constant(opcode[10],9,3); // dM - _cimg_mp_check_constant(opcode[11],10,3); // sM + _cimg_mp_check_const_scalar(opcode[8],7,3); // wM + _cimg_mp_check_const_scalar(opcode[9],8,3); // hM + _cimg_mp_check_const_scalar(opcode[10],9,3); // dM + _cimg_mp_check_const_scalar(opcode[11],10,3); // sM _cimg_mp_check_type(opcode[12],11,1,0); // boundary_conditions _cimg_mp_check_type(opcode[13],12,1,0); // is_normalized - _cimg_mp_check_constant(opcode[14],13,1); // channel_mode - _cimg_mp_check_type(opcode[15],14,1,0); // xcenter - _cimg_mp_check_type(opcode[16],15,1,0); // ycenter - _cimg_mp_check_type(opcode[17],16,1,0); // zcenter - _cimg_mp_check_constant(opcode[18],17,1); // xstart - _cimg_mp_check_constant(opcode[19],18,1); // ystart - _cimg_mp_check_constant(opcode[20],19,1); // zstart - _cimg_mp_check_constant(opcode[21],20,1); // xend - _cimg_mp_check_constant(opcode[22],21,1); // yend - _cimg_mp_check_constant(opcode[23],22,1); // zend - _cimg_mp_check_constant(opcode[24],23,3); // xstride - _cimg_mp_check_constant(opcode[25],24,3); // ystride - _cimg_mp_check_constant(opcode[26],25,3); // zstride + _cimg_mp_check_const_scalar(opcode[14],13,1); // channel_mode + if (opcode[15]!=~0U) _cimg_mp_check_type(opcode[15],14,1,0); // xcenter + if (opcode[16]!=~0U) _cimg_mp_check_type(opcode[16],15,1,0); // ycenter + if (opcode[17]!=~0U) _cimg_mp_check_type(opcode[17],16,1,0); // zcenter + _cimg_mp_check_const_scalar(opcode[18],17,1); // xstart + _cimg_mp_check_const_scalar(opcode[19],18,1); // ystart + _cimg_mp_check_const_scalar(opcode[20],19,1); // zstart + if (opcode[21]!=~0U) _cimg_mp_check_const_scalar(opcode[21],20,1); // xend + if (opcode[22]!=~0U) _cimg_mp_check_const_scalar(opcode[22],21,1); // yend + if (opcode[23]!=~0U) _cimg_mp_check_const_scalar(opcode[23],22,1); // zend + _cimg_mp_check_const_scalar(opcode[24],23,0); // xstride + _cimg_mp_check_const_scalar(opcode[25],24,0); // ystride + _cimg_mp_check_const_scalar(opcode[26],25,0); // zstride _cimg_mp_check_type(opcode[27],26,1,0); // xdilation _cimg_mp_check_type(opcode[28],27,1,0); // ydilation _cimg_mp_check_type(opcode[29],28,1,0); // zdilation + _cimg_mp_check_type(opcode[30],29,1,0); // interpolation_type const unsigned int wA = (unsigned int)mem[opcode[3]], @@ -19533,22 +19757,22 @@ namespace cimg_library_suffixed { hM = (unsigned int)mem[opcode[9]], dM = (unsigned int)mem[opcode[10]], sM = (unsigned int)mem[opcode[11]], - channel_mode = (unsigned int)mem[opcode[14]], - xstart = std::min((unsigned int)mem[opcode[18]],wA - 1), - ystart = std::min((unsigned int)mem[opcode[19]],hA - 1), - zstart = std::min((unsigned int)mem[opcode[20]],dA - 1), - xend = std::min((unsigned int)mem[opcode[21]],wA - 1), - yend = std::min((unsigned int)mem[opcode[22]],hA - 1), - zend = std::min((unsigned int)mem[opcode[23]],dA - 1); + channel_mode = (unsigned int)mem[opcode[14]]; + const int + xstart = (int)mem[opcode[18]], + ystart = (int)mem[opcode[19]], + zstart = (int)mem[opcode[20]], + xend = opcode[21]!=~0U?(int)mem[opcode[21]]:wA - 1, + yend = opcode[22]!=~0U?(int)mem[opcode[22]]:hA - 1, + zend = opcode[23]!=~0U?(int)mem[opcode[23]]:dA - 1; if (xstart>xend || ystart>yend || zstart>zend) { _cimg_mp_strerr; throw CImgArgumentException("[" cimg_appname "_math_parser] " "CImg<%s>::%s: %s: Invalid xyz-start/end arguments " - "(start = (%u,%u,%u), end = (%u,%u,%u)), in expression '%s%s%s'.", + "(start = (%d,%d,%d), end = (%d,%d,%d)), in expression '%s'.", pixel_type(),_cimg_mp_calling_function,s_op, - xstart,ystart,zstart,xend,yend,zend, - s0>expr._data?"...":"",s0,se<&expr.back()?"...":""); + xstart,ystart,zstart,xend,yend,zend,s0); } const float @@ -19560,16 +19784,16 @@ namespace cimg_library_suffixed { _cimg_mp_strerr; throw CImgArgumentException("[" cimg_appname "_math_parser] " "CImg<%s>::%s: %s: Invalid stride arguments (%g,%g,%g), " - "in expression '%s%s%s'.", + "in expression '%s'.", pixel_type(),_cimg_mp_calling_function,s_op, - xstride,ystride,zstride, - s0>expr._data?"...":"",s0,se<&expr.back()?"...":""); + xstride,ystride,zstride,s0); } - arg2 = 1 + (unsigned int)std::floor((xend - xstart)/xstride); - arg3 = 1 + (unsigned int)std::floor((yend - ystart)/ystride); - arg4 = 1 + (unsigned int)std::floor((zend + zstart)/zstride); - arg5 = channel_mode==0?sM:channel_mode==1?std::max(sA,sM):sA*sM; + arg2 = xend - xstart + 1; + arg3 = yend - ystart + 1; + arg4 = zend - zstart + 1; + arg5 = !channel_mode?sA*sM:channel_mode==1?std::max(sA,sM): + channel_mode==2?std::max(sA,sM)/std::min(sA,sM):1U; opcode[1] = pos = vector(arg2*arg3*arg4*arg5); opcode[3] = (ulongT)wA; @@ -19588,6 +19812,7 @@ namespace cimg_library_suffixed { opcode[22] = (ulongT)yend; opcode[23] = (ulongT)zend; opcode.move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } break; @@ -19596,31 +19821,135 @@ namespace cimg_library_suffixed { if (*ss1=='(') { // Image depth _cimg_mp_op("Function 'd()'"); if (*ss2=='#') { // Index specified - p1 = compile(ss3,se1,depth1,0,is_critical); - _cimg_mp_check_list(false); + p1 = compile(ss3,se1,depth1,0,block_flags); + _cimg_mp_check_list(); } else { if (ss2!=se1) break; p1 = ~0U; } - pos = scalar(); - CImg::vector((ulongT)mp_image_d,pos,p1).move_to(code); + _cimg_mp_scalar1(mp_image_d,p1); + } + + if (!std::strncmp(ss,"da_back(",8) || + !std::strncmp(ss,"da_pop(",7)) { // Get latest element in a dynamic array + if (!is_inside_critical) is_parallelizable = false; + const bool is_pop = *ss3=='p'; + _cimg_mp_op(is_pop?"Function 'da_pop()'":"Function 'da_back()'"); + s0 = ss + (is_pop?7:8); + if (*s0=='#') { // Index specified + s1 = ++s0; while (s11) pos = vector(p2); else pos = scalar(); // Return vector or scalar result + CImg::vector((ulongT)mp_da_back_or_pop,pos,p2,p1,is_pop).move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } + if (!std::strncmp(ss,"da_insert(",10) || + !std::strncmp(ss,"da_push(",8)) { // Insert element(s) in a dynamic array + if (!is_inside_critical) is_parallelizable = false; + const bool is_push = *ss3=='p'; + _cimg_mp_op(is_push?"Function 'da_push()'":"Function 'da_insert()'"); + s0 = ss + (is_push?8:10); + if (*s0=='#') { // Index specified + s1 = ++s0; while (s1::vector((ulongT)mp_da_insert_or_push,_cimg_mp_slot_nan,p1,arg1,0,0).move_to(l_opcode); + p3 = p1==~0U?2:3; + p1 = ~0U; + for (s = s1; s::vector(arg2).move_to(l_opcode); + s = ns; + ++p3; + } + if (p1==~0U) compile(++s1,se1,depth1,0,block_flags); // Missing element -> error + (l_opcode>'y').move_to(opcode); + opcode[4] = p1; + opcode[5] = opcode._height; + opcode.move_to(code); + _cimg_mp_return_nan(); + } + + if (!std::strncmp(ss,"da_freeze(",10)) { // Freeze dynamic array + if (!is_inside_critical) is_parallelizable = false; + _cimg_mp_op("Function 'da_freeze()'"); + s0 = ss + 10; + if (*s0=='#') { // Index specified + s1 = ++s0; while (s1::vector((ulongT)mp_da_freeze,_cimg_mp_slot_nan,p1).move_to(code); + _cimg_mp_return_nan(); + } + + if (!std::strncmp(ss,"da_remove(",10)) { // Remove element(s) in a dynamic array + if (!is_inside_critical) is_parallelizable = false; + _cimg_mp_op("Function 'da_remove()'"); + if (ss[10]=='#') { // Index specified + s0 = ss + 11; while (s0::vector((ulongT)mp_da_remove,_cimg_mp_slot_nan,p1,arg1,arg2).move_to(code); + _cimg_mp_return_nan(); + } + + if (!std::strncmp(ss,"da_size(",8)) { // Size of a dynamic array + if (!is_inside_critical) is_parallelizable = false; + _cimg_mp_op("Function 'da_size()'"); + if (ss[8]=='#') { // Index specified + s0 = ss + 9; while (s0::vector((ulongT)mp_date,pos,_cimg_mp_size(pos), arg1,arg1==~0U?~0U:_cimg_mp_size(arg1), arg2,arg2==~0U?~0U:_cimg_mp_size(arg2)).move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } if (!std::strncmp(ss,"debug(",6)) { // Print debug info _cimg_mp_op("Function 'debug()'"); p1 = code._width; - arg1 = compile(ss6,se1,depth1,p_ref,is_critical); + arg1 = compile(ss6,se1,depth1,p_ref,block_flags); *se1 = 0; variable_name.assign(CImg::string(ss6,true,true).unroll('y'),true); cimg::strpare(variable_name,false,true); @@ -19632,6 +19961,14 @@ namespace cimg_library_suffixed { _cimg_mp_return(arg1); } + if (!std::strncmp(ss,"deg2rad(",8)) { // Degrees to radians + _cimg_mp_op("Function 'deg2rad()'"); + arg1 = compile(ss8,se1,depth1,0,block_flags); + if (_cimg_mp_is_vector(arg1)) _cimg_mp_vector1_v(mp_deg2rad,arg1); + if (_cimg_mp_is_const_scalar(arg1)) _cimg_mp_const_scalar(mem[arg1]*cimg::PI/180); + _cimg_mp_scalar1(mp_deg2rad,arg1); + } + if (!std::strncmp(ss,"display(",8)) { // Display memory, vector or image _cimg_mp_op("Function 'display()'"); if (pexpr[se2 - expr._data]=='(') { // no arguments? @@ -19640,18 +19977,18 @@ namespace cimg_library_suffixed { } if (*ss8!='#') { // Vector s1 = ss8; while (s1::vector((ulongT)mp_image_display,_cimg_mp_slot_nan,p1).move_to(code); _cimg_mp_return_nan(); } @@ -19690,7 +20027,7 @@ namespace cimg_library_suffixed { if (!std::strncmp(ss,"det(",4)) { // Matrix determinant _cimg_mp_op("Function 'det()'"); - arg1 = compile(ss4,se1,depth1,0,is_critical); + arg1 = compile(ss4,se1,depth1,0,block_flags); _cimg_mp_check_matrix_square(arg1,1); p1 = (unsigned int)cimg::round(std::sqrt((float)_cimg_mp_size(arg1))); _cimg_mp_scalar2(mp_det,arg1,p1); @@ -19702,7 +20039,7 @@ namespace cimg_library_suffixed { for (s = ss5; s::sequence(_cimg_mp_size(arg2),arg2 + 1, arg2 + (ulongT)_cimg_mp_size(arg2)). @@ -19716,14 +20053,15 @@ namespace cimg_library_suffixed { opcode[1] = pos; opcode[2] = opcode._height; opcode.move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } if (!std::strncmp(ss,"dot(",4)) { // Dot product _cimg_mp_op("Function 'dot()'"); s1 = ss4; while (s1::vector((ulongT)mp_do,p1,p2,arg2 - arg1,code._width - arg2,_cimg_mp_size(p1), - p1>=arg6 && !_cimg_mp_is_constant(p1), - p2>=arg6 && !_cimg_mp_is_constant(p2)).move_to(code,arg1); + p1>=arg6 && !_cimg_mp_is_const_scalar(p1), + p2>=arg6 && !_cimg_mp_is_const_scalar(p2)).move_to(code,arg1); _cimg_mp_return(p1); } if (!std::strncmp(ss,"draw(",5)) { // Draw image - if (!is_critical) is_parallelizable = false; _cimg_mp_op("Function 'draw()'"); if (*ss5=='#') { // Index specified s0 = ss6; while (s01) { - arg3 = arg2 + 1; - if (p2>2) { - arg4 = arg3 + 1; - if (p2>3) arg5 = arg4 + 1; - } - } - ++s0; - is_sth = true; + + for (s = s0; s::vector(arg1).move_to(l_opcode); + s = ns; + } + (l_opcode>'y').move_to(opcode); + + is_sth = p1==~0U && opcode._height>5 && _cimg_mp_is_vector((unsigned int)opcode[5]); // Is vector drawing? + if ((is_sth && (opcode._height<6 || opcode._height>17)) || + (!is_sth && (opcode._height<1 || opcode._height>12))) { + _cimg_mp_strerr; + throw CImgArgumentException("[" cimg_appname "_math_parser] " + "CImg<%s>::%s: %s: Too %s arguments specified, " + "in expression '%s'.", + pixel_type(),_cimg_mp_calling_function,s_op, + opcode._height>12?"much":"few",s0); + } + + if (is_sth) { // Drawing in a vector + _cimg_mp_check_type((unsigned int)*opcode,1,2,0); // D + _cimg_mp_check_type((unsigned int)opcode[1],2,1,0); // w + _cimg_mp_check_type((unsigned int)opcode[2],3,1,0); // h + _cimg_mp_check_type((unsigned int)opcode[3],4,1,0); // d + _cimg_mp_check_type((unsigned int)opcode[4],5,1,0); // s + + if (opcode._height<8 || (opcode._height<10 && _cimg_mp_is_vector((unsigned int)opcode[7]))) { + // D,w,h,d,s,S[,opac,M,maxM] + if (opcode._height>6) _cimg_mp_check_type((unsigned int)opcode[6],7,1,0); // opac + if (opcode._height>8) _cimg_mp_check_type((unsigned int)opcode[8],9,1,0); // maxM + CImg::vector((ulongT)mp_vector_draw, + *opcode,_cimg_mp_size((unsigned int)*opcode), // 1-2: D,sizD + opcode[1],opcode[2],opcode[3],opcode[4], // 3-6: w,h,d,s + opcode[5],_cimg_mp_size((unsigned int)opcode[5]), // 7-8: S,sizS + 0,0,0,0, // 9-12: x,y,z,c + ~0U,~0U,~0U,~0U, // 13-16: dx,dy,dz,dc + opcode._height<7?1:opcode[6], // 17: opac + opcode._height<8?~0U:opcode[7], // 18: M + opcode._height<8?0:_cimg_mp_size((unsigned int)opcode[7]), // 19: sizM + opcode._height<9?1:opcode[8]).move_to(code); // 20: maxM + } else if (opcode._height<10 || (opcode._height<12 && _cimg_mp_is_vector((unsigned int)opcode[9]))) { + // D,w,h,d,s,S,x,dx[,opac,M,maxM] + _cimg_mp_check_type((unsigned int)opcode[6],7,1,0); // x + _cimg_mp_check_type((unsigned int)opcode[7],8,1,0); // dx + if (opcode._height>8) _cimg_mp_check_type((unsigned int)opcode[8],9,1,0); // opac + if (opcode._height>10) _cimg_mp_check_type((unsigned int)opcode[10],11,1,0); // maxM + CImg::vector((ulongT)mp_vector_draw, + *opcode,_cimg_mp_size((unsigned int)*opcode), // 1-2: D,sizD + opcode[1],opcode[2],opcode[3],opcode[4], // 3-6: w,h,d,s + opcode[5],_cimg_mp_size((unsigned int)opcode[5]), // 7-8: S,sizS + opcode[6],0,0,0, // 9-12: x,y,z,c + opcode[7],~0U,~0U,~0U, // 13-16: dx,dy,dz,dc + opcode._height<9?1:opcode[8], // 17: opac + opcode._height<10?~0U:opcode[9], // 18: M + opcode._height<10?0:_cimg_mp_size((unsigned int)opcode[9]), // 19: sizM + opcode._height<11?1:opcode[10]).move_to(code); // 20: maxM + } else if (opcode._height<12 || (opcode._height<14 && _cimg_mp_is_vector((unsigned int)opcode[11]))) { + // D,w,h,d,s,S,x,y,dx,dy[,opac,M,maxM] + _cimg_mp_check_type((unsigned int)opcode[6],7,1,0); // x + _cimg_mp_check_type((unsigned int)opcode[7],8,1,0); // y + _cimg_mp_check_type((unsigned int)opcode[8],9,1,0); // dx + _cimg_mp_check_type((unsigned int)opcode[9],10,1,0); // dy + if (opcode._height>10) _cimg_mp_check_type((unsigned int)opcode[10],11,1,0); // opac + if (opcode._height>12) _cimg_mp_check_type((unsigned int)opcode[12],13,1,0); // maxM + CImg::vector((ulongT)mp_vector_draw, + *opcode,_cimg_mp_size((unsigned int)*opcode), // 1-2: D,sizD + opcode[1],opcode[2],opcode[3],opcode[4], // 3-6: w,h,d,s + opcode[5],_cimg_mp_size((unsigned int)opcode[5]), // 7-8: S,sizS + opcode[6],opcode[7],0,0, // 9-12: x,y,z,c + opcode[8],opcode[9],~0U,~0U, // 13-16: dx,dy,dz,dc + opcode._height<11?1:opcode[10], // 17: opac + opcode._height<12?~0U:opcode[11], // 18: M + opcode._height<12?0:_cimg_mp_size((unsigned int)opcode[11]), // 19: sizM + opcode._height<13?1:opcode[12]).move_to(code); // 20: maxM + } else if (opcode._height<14 || (opcode._height<16 && _cimg_mp_is_vector((unsigned int)opcode[13]))) { + // D,w,h,d,s,S,x,y,z,dx,dy,dz[,opac,M,maxM] + _cimg_mp_check_type((unsigned int)opcode[6],7,1,0); // x + _cimg_mp_check_type((unsigned int)opcode[7],8,1,0); // y + _cimg_mp_check_type((unsigned int)opcode[8],9,1,0); // z + _cimg_mp_check_type((unsigned int)opcode[9],10,1,0); // dx + _cimg_mp_check_type((unsigned int)opcode[10],11,1,0); // dy + _cimg_mp_check_type((unsigned int)opcode[11],12,1,0); // dz + if (opcode._height>12) _cimg_mp_check_type((unsigned int)opcode[12],13,1,0); // opac + if (opcode._height>14) _cimg_mp_check_type((unsigned int)opcode[14],15,1,0); // maxM + CImg::vector((ulongT)mp_vector_draw, + *opcode,_cimg_mp_size((unsigned int)*opcode), // 1-2: D,sizD + opcode[1],opcode[2],opcode[3],opcode[4], // 3-6: w,h,d,s + opcode[5],_cimg_mp_size((unsigned int)opcode[5]), // 7-8: S,sizS + opcode[6],opcode[7],opcode[8],0, // 9-12: x,y,z,c + opcode[9],opcode[10],opcode[11],~0U, // 13-16: dx,dy,dz,dc + opcode._height<13?1:opcode[12], // 17: opac + opcode._height<14?~0U:opcode[13], // 18: M + opcode._height<14?0:_cimg_mp_size((unsigned int)opcode[13]), // 19: sizM + opcode._height<15?1:opcode[14]).move_to(code); // 20: maxM + } else if (opcode._height<16 || (opcode._height<18 && _cimg_mp_is_vector((unsigned int)opcode[15]))) { + // D,w,h,d,s,S,x,y,z,c,dx,dy,dz,dc[,opac,M,maxM] + _cimg_mp_check_type((unsigned int)opcode[6],7,1,0); // x + _cimg_mp_check_type((unsigned int)opcode[7],8,1,0); // y + _cimg_mp_check_type((unsigned int)opcode[8],9,1,0); // z + _cimg_mp_check_type((unsigned int)opcode[9],10,1,0); // c + _cimg_mp_check_type((unsigned int)opcode[10],11,1,0); // dx + _cimg_mp_check_type((unsigned int)opcode[11],12,1,0); // dy + _cimg_mp_check_type((unsigned int)opcode[12],13,1,0); // dz + _cimg_mp_check_type((unsigned int)opcode[13],14,1,0); // dc + if (opcode._height>14) _cimg_mp_check_type((unsigned int)opcode[14],15,1,0); // opac + if (opcode._height>16) _cimg_mp_check_type((unsigned int)opcode[16],17,1,0); // maxM + CImg::vector((ulongT)mp_vector_draw, + *opcode,_cimg_mp_size((unsigned int)*opcode), // 1-2: D,sizD + opcode[1],opcode[2],opcode[3],opcode[4], // 3-6: w,h,d,s + opcode[5],_cimg_mp_size((unsigned int)opcode[5]), // 7-8: S,sizS + opcode[6],opcode[7],opcode[8],opcode[9], // 9-12: x,y,z,c + opcode[10],opcode[11],opcode[12],opcode[13], // 13-16: dx,dy,dz,dc + opcode._height<15?1:opcode[14], // 17: opac + opcode._height<16?~0U:opcode[15], // 18: M + opcode._height<16?0:_cimg_mp_size((unsigned int)opcode[15]), // 19: sizM + opcode._height<17?1:opcode[16]).move_to(code); // 20: maxM } else { - if (s0::%s: %s: Invalid types in specified arguments, " + "in expression '%s'.", + pixel_type(),_cimg_mp_calling_function,s_op,s0); + } + + } else { // Drawing in an image + if (!is_inside_critical) is_parallelizable = false; + arg1 = p1!=~0U; + _cimg_mp_check_type((unsigned int)*opcode,1 + arg1,2,0); // S + if (opcode._height<3 || (opcode._height<5 && _cimg_mp_is_vector((unsigned int)opcode[2]))) { + // S[,opac,M,maxM] + if (opcode._height>1) _cimg_mp_check_type((unsigned int)opcode[1],2 + arg1,1,0); // opac + if (opcode._height>3) _cimg_mp_check_type((unsigned int)opcode[3],4 + arg1,1,0); // maxM + CImg::vector((ulongT)mp_image_draw, + *opcode,_cimg_mp_size((unsigned int)*opcode),p1, // 1-3: S,sizS,#ind + 0,0,0,0, // 4-7: x,y,z,c + ~0U,~0U,~0U,~0U, // 8-11: dx,dy,dz,dc + opcode._height<2?1:opcode[1], // 12: opac + opcode._height<3?~0U:opcode[2], // 13: M + opcode._height<3?0:_cimg_mp_size((unsigned int)opcode[2]), // 14: sizM + opcode._height<4?1:opcode[3]).move_to(code); // 15: maxM + } else if (opcode._height<5 || (opcode._height<7 && _cimg_mp_is_vector((unsigned int)opcode[4]))) { + // x,dx,S[,opac,M,maxM] + _cimg_mp_check_type((unsigned int)opcode[1],2 + arg1,1,0); // x + _cimg_mp_check_type((unsigned int)opcode[2],3 + arg1,1,0); // dx + if (opcode._height>3) _cimg_mp_check_type((unsigned int)opcode[3],4 + arg1,1,0); // opac + if (opcode._height>5) _cimg_mp_check_type((unsigned int)opcode[5],6 + arg1,1,0); // maxM + CImg::vector((ulongT)mp_image_draw, + *opcode,_cimg_mp_size((unsigned int)*opcode),p1, // 1-3: S,sizS,#ind + opcode[1],0,0,0, // 4-7: x,y,z,c + opcode[2],~0U,~0U,~0U, // 8-11: dx,dy,dz,dc + opcode._height<4?1:opcode[3], // 12: opac + opcode._height<5?~0U:opcode[4], // 13: M + opcode._height<5?0:_cimg_mp_size((unsigned int)opcode[4]), // 14: sizM + opcode._height<6?1:opcode[5]).move_to(code); // 15: maxM + } else if (opcode._height<7 || (opcode._height<9 && _cimg_mp_is_vector((unsigned int)opcode[6]))) { + // x,y,dx,dy,S[,opac,M,maxM] + _cimg_mp_check_type((unsigned int)opcode[1],2 + arg1,1,0); // x + _cimg_mp_check_type((unsigned int)opcode[2],3 + arg1,1,0); // y + _cimg_mp_check_type((unsigned int)opcode[3],4 + arg1,1,0); // dx + _cimg_mp_check_type((unsigned int)opcode[4],5 + arg1,1,0); // dy + if (opcode._height>5) _cimg_mp_check_type((unsigned int)opcode[5],6 + arg1,1,0); // opac + if (opcode._height>7) _cimg_mp_check_type((unsigned int)opcode[7],8 + arg1,1,0); // maxM + CImg::vector((ulongT)mp_image_draw, + *opcode,_cimg_mp_size((unsigned int)*opcode),p1, // 1-3: S,sizS,#ind + opcode[1],opcode[2],0,0, // 4-7: x,y,z,c + opcode[3],opcode[4],~0U,~0U, // 8-11: dx,dy,dz,dc + opcode._height<6?1:opcode[5], // 12: opac + opcode._height<7?~0U:opcode[6], // 13: M + opcode._height<7?0:_cimg_mp_size((unsigned int)opcode[6]), // 14: sizM + opcode._height<8?1:opcode[7]).move_to(code); // 15: maxM + } else if (opcode._height<9 || (opcode._height<11 && _cimg_mp_is_vector((unsigned int)opcode[8]))) { + // x,y,z,dx,dy,dz,S[,opac,M,maxM] + _cimg_mp_check_type((unsigned int)opcode[1],2 + arg1,1,0); // x + _cimg_mp_check_type((unsigned int)opcode[2],3 + arg1,1,0); // y + _cimg_mp_check_type((unsigned int)opcode[3],4 + arg1,1,0); // z + _cimg_mp_check_type((unsigned int)opcode[4],5 + arg1,1,0); // dx + _cimg_mp_check_type((unsigned int)opcode[5],6 + arg1,1,0); // dy + _cimg_mp_check_type((unsigned int)opcode[6],7 + arg1,1,0); // dz + if (opcode._height>7) _cimg_mp_check_type((unsigned int)opcode[7],8 + arg1,1,0); // opac + if (opcode._height>9) _cimg_mp_check_type((unsigned int)opcode[9],10 + arg1,1,0); // maxM + CImg::vector((ulongT)mp_image_draw, + *opcode,_cimg_mp_size((unsigned int)*opcode),p1, // 1-3: S,sizS,#ind + opcode[1],opcode[2],opcode[3],0, // 4-7: x,y,z,c + opcode[4],opcode[5],opcode[6],~0U, // 8-11: dx,dy,dz,dc + opcode._height<8?1:opcode[7], // 12: opac + opcode._height<9?~0U:opcode[8], // 13: M + opcode._height<9?0:_cimg_mp_size((unsigned int)opcode[8]), // 14: sizM + opcode._height<10?1:opcode[9]).move_to(code); // 15: maxM + } else if (opcode._height<11 || (opcode._height<13 && _cimg_mp_is_vector((unsigned int)opcode[10]))) { + // x,y,z,c,dx,dy,dz,dc,S[,opac,M,maxM] + _cimg_mp_check_type((unsigned int)opcode[1],2 + arg1,1,0); // x + _cimg_mp_check_type((unsigned int)opcode[2],3 + arg1,1,0); // y + _cimg_mp_check_type((unsigned int)opcode[3],4 + arg1,1,0); // z + _cimg_mp_check_type((unsigned int)opcode[4],5 + arg1,1,0); // c + _cimg_mp_check_type((unsigned int)opcode[5],6 + arg1,1,0); // dx + _cimg_mp_check_type((unsigned int)opcode[6],7 + arg1,1,0); // dy + _cimg_mp_check_type((unsigned int)opcode[7],8 + arg1,1,0); // dz + _cimg_mp_check_type((unsigned int)opcode[8],9 + arg1,1,0); // dc + if (opcode._height>9) _cimg_mp_check_type((unsigned int)opcode[9],10 + arg1,1,0); // opac + if (opcode._height>11) _cimg_mp_check_type((unsigned int)opcode[11],12 + arg1,1,0); // maxM + CImg::vector((ulongT)mp_image_draw, + *opcode,_cimg_mp_size((unsigned int)*opcode),p1, // 1-3: S,sizS,#ind + opcode[1],opcode[2],opcode[3],opcode[4], // 4-7: x,y,z,c + opcode[5],opcode[6],opcode[7],opcode[8], // 8-11: dx,dy,dz,dc + opcode._height<10?1:opcode[9], // 12: opac + opcode._height<11?~0U:opcode[10], // 13: M + opcode._height<11?0:_cimg_mp_size((unsigned int)opcode[10]), // 14: sizM + opcode._height<12?1:opcode[11]).move_to(code); // 15: maxM + } else { + _cimg_mp_strerr; + throw CImgArgumentException("[" cimg_appname "_math_parser] " + "CImg<%s>::%s: %s: Invalid types in specified arguments, " + "in expression '%s'.", + pixel_type(),_cimg_mp_calling_function,s_op,s0); } } - - l_opcode.assign(); // Don't use 'opcode': it could be modified by further calls to 'compile()'! - CImg::vector((ulongT)mp_draw,arg1,(ulongT)_cimg_mp_size(arg1),p1,arg2,arg3,arg4,arg5, - 0,0,0,0,1,(ulongT)~0U,0,1).move_to(l_opcode); - - arg2 = arg3 = arg4 = arg5 = ~0U; - p2 = p1!=~0U?0:1; - if (s0::vector((ulongT)mp_echo,_cimg_mp_slot_nan,0).move_to(l_opcode); - for (s = ss5; s::vector(arg1,_cimg_mp_size(arg1)).move_to(l_opcode); s = ns; } @@ -19874,33 +20334,36 @@ namespace cimg_library_suffixed { if (!std::strncmp(ss,"eig(",4)) { // Matrix eigenvalues/eigenvector _cimg_mp_op("Function 'eig()'"); - arg1 = compile(ss4,se1,depth1,0,is_critical); + arg1 = compile(ss4,se1,depth1,0,block_flags); _cimg_mp_check_matrix_square(arg1,1); p1 = (unsigned int)cimg::round(std::sqrt((float)_cimg_mp_size(arg1))); pos = vector((p1 + 1)*p1); CImg::vector((ulongT)mp_matrix_eig,pos,arg1,p1).move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } if (!std::strncmp(ss,"ellipse(",8)) { // Ellipse/circle drawing - if (!is_critical) is_parallelizable = false; + if (!is_inside_critical) is_parallelizable = false; _cimg_mp_op("Function 'ellipse()'"); if (*ss8=='#') { // Index specified s0 = ss + 9; while (s0::vector((ulongT)mp_ellipse,_cimg_mp_slot_nan,0,p1).move_to(l_opcode); - for (s = s0; s::sequence(_cimg_mp_size(arg2),arg2 + 1, arg2 + (ulongT)_cimg_mp_size(arg2)). move_to(l_opcode); - else CImg::vector(arg2).move_to(l_opcode); + else + CImg::vector(arg2).move_to(l_opcode); s = ns; } (l_opcode>'y').move_to(opcode); @@ -19909,39 +20372,55 @@ namespace cimg_library_suffixed { _cimg_mp_return_nan(); } + if (!std::strncmp(ss,"erf(",4)) { // Error function + _cimg_mp_op("Function 'erf()'"); + arg1 = compile(ss4,se1,depth1,0,block_flags); + if (_cimg_mp_is_vector(arg1)) _cimg_mp_vector1_v(mp_erf,arg1); + if (_cimg_mp_is_const_scalar(arg1)) _cimg_mp_const_scalar(std::erf(mem[arg1])); + _cimg_mp_scalar1(mp_erf,arg1); + } + + if (!std::strncmp(ss,"erfinv(",7)) { // Inverse of error function + _cimg_mp_op("Function 'erfinv()'"); + arg1 = compile(ss7,se1,depth1,0,block_flags); + if (_cimg_mp_is_vector(arg1)) _cimg_mp_vector1_v(mp_erfinv,arg1); + if (_cimg_mp_is_const_scalar(arg1)) _cimg_mp_const_scalar(cimg::erfinv(mem[arg1])); + _cimg_mp_scalar1(mp_erfinv,arg1); + } + if (!std::strncmp(ss,"exp(",4)) { // Exponential _cimg_mp_op("Function 'exp()'"); - arg1 = compile(ss4,se1,depth1,0,is_critical); + arg1 = compile(ss4,se1,depth1,0,block_flags); if (_cimg_mp_is_vector(arg1)) _cimg_mp_vector1_v(mp_exp,arg1); - if (_cimg_mp_is_constant(arg1)) _cimg_mp_constant(std::exp(mem[arg1])); + if (_cimg_mp_is_const_scalar(arg1)) _cimg_mp_const_scalar(std::exp(mem[arg1])); _cimg_mp_scalar1(mp_exp,arg1); } if (!std::strncmp(ss,"expr(",5)) { // Vector from expression _cimg_mp_op("Function 'expr()'"); s1 = ss5; while (s1::vector((ulongT)mp_expr,pos,arg1,p1,arg2,arg3,arg4,arg5).move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } if (!std::strncmp(ss,"eye(",4)) { // Identity matrix _cimg_mp_op("Function 'eye()'"); - arg1 = compile(ss4,se1,depth1,0,is_critical); - _cimg_mp_check_constant(arg1,1,3); + arg1 = compile(ss4,se1,depth1,0,block_flags); + _cimg_mp_check_const_scalar(arg1,1,3); p1 = (unsigned int)mem[arg1]; pos = vector(p1*p1); CImg::vector((ulongT)mp_eye,pos,p1).move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } if (!std::strncmp(ss,"end(",4)) { // End _cimg_mp_op("Function 'end()'"); - code.swap(code_end); - compile(ss4,se1,depth1,p_ref,true); - code.swap(code_end); - is_end_code = true; + s1 = ss4; while (s1uint conversion _cimg_mp_op("Function 'f2ui()'"); - arg1 = compile(ss5,se1,depth1,0,is_critical); + arg1 = compile(ss5,se1,depth1,0,block_flags); if (_cimg_mp_is_vector(arg1)) _cimg_mp_vector1_v(mp_f2ui,arg1); - if (_cimg_mp_is_constant(arg1)) _cimg_mp_constant((double)cimg::float2uint((float)mem[arg1])); + if (_cimg_mp_is_const_scalar(arg1)) _cimg_mp_const_scalar((double)cimg::float2uint((float)mem[arg1])); _cimg_mp_scalar1(mp_f2ui,arg1); } if (!std::strncmp(ss,"fact(",5)) { // Factorial _cimg_mp_op("Function 'fact()'"); - arg1 = compile(ss5,se1,depth1,0,is_critical); + arg1 = compile(ss5,se1,depth1,0,block_flags); if (_cimg_mp_is_vector(arg1)) _cimg_mp_vector1_v(mp_factorial,arg1); - if (_cimg_mp_is_constant(arg1)) _cimg_mp_constant(cimg::factorial((int)mem[arg1])); + if (_cimg_mp_is_const_scalar(arg1)) _cimg_mp_const_scalar(cimg::factorial((int)mem[arg1])); _cimg_mp_scalar1(mp_factorial,arg1); } if (!std::strncmp(ss,"fibo(",5)) { // Fibonacci _cimg_mp_op("Function 'fibo()'"); - arg1 = compile(ss5,se1,depth1,0,is_critical); + arg1 = compile(ss5,se1,depth1,0,block_flags); if (_cimg_mp_is_vector(arg1)) _cimg_mp_vector1_v(mp_fibonacci,arg1); - if (_cimg_mp_is_constant(arg1)) _cimg_mp_constant(cimg::fibonacci((int)mem[arg1])); + if (_cimg_mp_is_const_scalar(arg1)) _cimg_mp_const_scalar(cimg::fibonacci((int)mem[arg1])); _cimg_mp_scalar1(mp_fibonacci,arg1); } + if (!std::strncmp(ss,"fill(",5)) { // Fill + _cimg_mp_op("Function 'fill()'"); + s0 = ss5; while (s0::%s: %s: Target scalar is constant, " + "in expression '%s'.", + pixel_type(),_cimg_mp_calling_function,s_op,ss); + s1 = ++s0; while (s1::%s: %s: Invalid loop variable name '%s', " + "in expression '%s'.", + pixel_type(),_cimg_mp_calling_function,s_op, + variable_name._data,s0); + } + get_variable_pos(variable_name,arg2,arg3); + arg2 = arg3!=~0U?reserved_label[arg3]:arg2!=~0U?variable_pos[arg2]:~0U; // Variable slot + if (arg2!=~0U && (!_cimg_mp_is_scalar(arg2) || + _cimg_mp_is_const_scalar(arg2))) { // Variable is not a vector or is a constant->error + cimg::strellipsize(variable_name,64); + throw CImgArgumentException("[" cimg_appname "_math_parser] " + "CImg<%s>::%s: %s: Invalid type '%s' for variable '%s' " + "(expected 'scalar'), in expression '%s'.", + pixel_type(),_cimg_mp_calling_function,s_op, + s_type(arg2)._data,variable_name._data,s0); + } else if (arg2==~0U) { // Variable does not exist -> create it + arg2 = scalar(); + if (arg3!=~0U) reserved_label[arg3] = arg2; + else { + if (variable_def._width>=variable_pos._width) variable_pos.resize(-200,1,1,1,0); + variable_pos[variable_def._width] = arg2; + variable_name.move_to(variable_def); + } + memtype[arg2] = -1; + } + arg3 = compile(++s1,se1,depth1,0,block_flags); + _cimg_mp_check_type(arg3,3,1,0); + } else { // Version with 2 arguments + arg2 = ~0U; + arg3 = compile(s0,se1,depth1,0,block_flags); + } + // arg2 = variable slot, arg3 = fill expression. + _cimg_mp_check_type(arg3,3,1,0); + CImg::vector((ulongT)mp_fill,arg1,_cimg_mp_size(arg1),arg2,arg3,code._width - p1). + move_to(code,p1); + _cimg_mp_return_nan(); + } + if (!std::strncmp(ss,"find(",5)) { // Find _cimg_mp_op("Function 'find()'"); // First argument: data to look at. s0 = ss5; while (s0::vector((ulongT)mp_for,p3,(ulongT)_cimg_mp_size(p3),p2,arg2 - arg1,arg3 - arg2, arg4 - arg3,code._width - arg4, - p3>=arg6 && !_cimg_mp_is_constant(p3), - p2>=arg6 && !_cimg_mp_is_constant(p2)).move_to(code,arg1); + p3>=arg6 && !_cimg_mp_is_const_scalar(p3), + p2>=arg6 && !_cimg_mp_is_const_scalar(p2)).move_to(code,arg1); _cimg_mp_return(p3); } if (!std::strncmp(ss,"floor(",6)) { // Floor _cimg_mp_op("Function 'floor()'"); - arg1 = compile(ss6,se1,depth1,0,is_critical); + arg1 = compile(ss6,se1,depth1,0,block_flags); if (_cimg_mp_is_vector(arg1)) _cimg_mp_vector1_v(mp_floor,arg1); - if (_cimg_mp_is_constant(arg1)) _cimg_mp_constant(std::floor(mem[arg1])); + if (_cimg_mp_is_const_scalar(arg1)) _cimg_mp_const_scalar(std::floor(mem[arg1])); _cimg_mp_scalar1(mp_floor,arg1); } if (!std::strncmp(ss,"fsize(",6)) { // File size _cimg_mp_op("Function 'fsize()'"); - arg1 = compile(ss6,se1,depth1,0,is_critical); + arg1 = compile(ss6,se1,depth1,0,block_flags); _cimg_mp_check_type(arg1,1,2,0); pos = scalar(); CImg::vector((ulongT)mp_fsize,pos,arg1,(ulongT)_cimg_mp_size(arg1)).move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } break; @@ -20096,20 +20642,20 @@ namespace cimg_library_suffixed { if (!std::strncmp(ss,"gauss(",6)) { // Gaussian function _cimg_mp_op("Function 'gauss()'"); s1 = ss6; while (s1::max(); + if (mem[arg2]>=siz_max) { + _cimg_mp_strerr; + throw CImgArgumentException("[" cimg_appname "_math_parser] " + "CImg<%s>::%s: %s: Specified variable size %g is larger than %d.", + pixel_type(),_cimg_mp_calling_function,s_op, + mem[arg2],siz_max); + } arg2 = (unsigned int)mem[arg2]; if (arg2) pos = vector(arg2); else pos = scalar(); CImg::vector((ulongT)mp_get,pos,arg1,p1,arg2,arg3).move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } #endif @@ -20153,12 +20709,10 @@ namespace cimg_library_suffixed { if (*ss1=='(') { // Image height _cimg_mp_op("Function 'h()'"); if (*ss2=='#') { // Index specified - p1 = compile(ss3,se1,depth1,0,is_critical); - _cimg_mp_check_list(false); + p1 = compile(ss3,se1,depth1,0,block_flags); + _cimg_mp_check_list(); } else { if (ss2!=se1) break; p1 = ~0U; } - pos = scalar(); - CImg::vector((ulongT)mp_image_h,pos,p1).move_to(code); - _cimg_mp_return(pos); + _cimg_mp_scalar1(mp_image_h,p1); } break; @@ -20166,33 +20720,24 @@ namespace cimg_library_suffixed { if (*ss1=='c' && *ss2=='(') { // Image median _cimg_mp_op("Function 'ic()'"); if (*ss3=='#') { // Index specified - p1 = compile(ss4,se1,depth1,0,is_critical); - _cimg_mp_check_list(false); - } else { if (ss3!=se1) break; p1 = ~0U; } - pos = scalar(); - CImg::vector((ulongT)mp_image_median,pos,p1).move_to(code); - _cimg_mp_return(pos); - } - - if (*ss1=='c' && *ss2=='(') { // Image median - _cimg_mp_op("Function 'ic()'"); - if (*ss3=='#') { // Index specified - p1 = compile(ss4,se1,depth1,0,is_critical); - _cimg_mp_check_list(false); + p1 = compile(ss4,se1,depth1,0,block_flags); + _cimg_mp_check_list(); } else { if (ss3!=se1) break; p1 = ~0U; } pos = scalar(); CImg::vector((ulongT)mp_image_median,pos,p1).move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } if (*ss1=='n' && *ss2=='(') { // Image norm _cimg_mp_op("Function 'in()'"); if (*ss3=='#') { // Index specified - p1 = compile(ss4,se1,depth1,0,is_critical); - _cimg_mp_check_list(false); + p1 = compile(ss4,se1,depth1,0,block_flags); + _cimg_mp_check_list(); } else { if (ss3!=se1) break; p1 = ~0U; } pos = scalar(); CImg::vector((ulongT)mp_image_norm,pos,p1).move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } @@ -20200,44 +20745,45 @@ namespace cimg_library_suffixed { _cimg_mp_op("Function 'if()'"); s1 = ss3; while (s1::vector((ulongT)mp_if,pos,arg1,arg2,arg3, p3 - p2,code._width - p3,arg4).move_to(code,p2); + return_new_comp = true; _cimg_mp_return(pos); } if (!std::strncmp(ss,"inrange(",8)) { // Check value range _cimg_mp_op("Function 'inrange()'"); s1 = ss8; while (s1=val1) is_sth = (mem[arg4]?(val>=val1):(val>val1)) && (mem[arg5]?(val<=val2):(val::vector((ulongT)mp_inrange,pos,arg6,arg1,p1,arg2,p2,arg3,p3,arg4,arg5).move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } - if (!std::strncmp(ss,"int(",4)) { // Integer cast _cimg_mp_op("Function 'int()'"); - arg1 = compile(ss4,se1,depth1,0,is_critical); + arg1 = compile(ss4,se1,depth1,0,block_flags); if (_cimg_mp_is_vector(arg1)) _cimg_mp_vector1_v(mp_int,arg1); - if (_cimg_mp_is_constant(arg1)) _cimg_mp_constant((longT)mem[arg1]); + if (_cimg_mp_is_const_scalar(arg1)) _cimg_mp_const_scalar((longT)mem[arg1]); _cimg_mp_scalar1(mp_int,arg1); } - if (!std::strncmp(ss,"invert(",7)) { // Matrix/scalar inversion + if (!std::strncmp(ss,"invert(",7)) { // Matrix/scalar inverse (or pseudoinverse) _cimg_mp_op("Function 'invert()'"); s1 = ss7; while (s1::vector((ulongT)mp_matrix_invert,pos,arg1,p1,arg2).move_to(code); + p1 = _cimg_mp_size(arg1); + if (arg2==~0U) { // nb_colsA not specified: assuming square matrix + _cimg_mp_check_matrix_square(arg1,1); + p2 = p3 = (unsigned int)cimg::round(std::sqrt((float)p1)); + } else { + p2 = arg2; + p3 = p1/p2; + if (p3*p2!=p1) { + _cimg_mp_strerr; + throw CImgArgumentException("[" cimg_appname "_math_parser] " + "CImg<%s>::%s: %s: Type of first argument ('%s') " + "does not match with second argument 'nb_colsA=%u', " + "in expression '%s'.", + pixel_type(),_cimg_mp_calling_function,s_op, + s_type(arg1)._data,p2,s0); + } + } + pos = vector(p1); + CImg::vector((ulongT)mp_matrix_invert,pos,arg1,p2,p3,arg3,arg4).move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } - if (_cimg_mp_is_constant(arg1)) _cimg_mp_constant(1/mem[arg1]); + if (_cimg_mp_is_const_scalar(arg1)) _cimg_mp_const_scalar(1/mem[arg1]); _cimg_mp_scalar2(mp_div,1,arg1); } @@ -20293,28 +20872,28 @@ namespace cimg_library_suffixed { if (!std::strncmp(ss,"isbool(",7)) { // Is boolean? _cimg_mp_op("Function 'isbool()'"); if (ss7==se1) _cimg_mp_return(0); - try { arg1 = compile(ss7,se1,depth1,0,is_critical); } + try { arg1 = compile(ss7,se1,depth1,0,block_flags); } catch(CImgException&) { _cimg_mp_return(0); } if (_cimg_mp_is_vector(arg1)) _cimg_mp_vector1_v(mp_isbool,arg1); - if (_cimg_mp_is_constant(arg1)) _cimg_mp_return(mem[arg1]==0. || mem[arg1]==1.); + if (_cimg_mp_is_const_scalar(arg1)) _cimg_mp_return(mem[arg1]==0. || mem[arg1]==1.); _cimg_mp_scalar1(mp_isbool,arg1); } if (!std::strncmp(ss,"isdir(",6)) { // Is directory? _cimg_mp_op("Function 'isdir()'"); - arg1 = compile(ss6,se1,depth1,0,is_critical); - if (_cimg_mp_is_scalar(arg1)) _cimg_mp_return(0); + arg1 = compile(ss6,se1,depth1,0,block_flags); pos = scalar(); CImg::vector((ulongT)mp_isdir,pos,arg1,(ulongT)_cimg_mp_size(arg1)).move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } if (!std::strncmp(ss,"isfile(",7)) { // Is file? _cimg_mp_op("Function 'isfile()'"); - arg1 = compile(ss7,se1,depth1,0,is_critical); - if (_cimg_mp_is_scalar(arg1)) _cimg_mp_return(0); + arg1 = compile(ss7,se1,depth1,0,block_flags); pos = scalar(); CImg::vector((ulongT)mp_isfile,pos,arg1,(ulongT)_cimg_mp_size(arg1)).move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } @@ -20326,45 +20905,45 @@ namespace cimg_library_suffixed { for (s = ss5; s::sequence(_cimg_mp_size(arg1),arg1 + 1, - arg1 + (ulongT)_cimg_mp_size(arg1)). - move_to(l_opcode); - else CImg::vector(arg1).move_to(l_opcode); + arg1 = compile(s,ns,depth1,0,block_flags); + CImg::vector(arg1,_cimg_mp_size(arg1)).move_to(l_opcode); s = ns; } (l_opcode>'y').move_to(opcode); opcode[2] = opcode._height; opcode.move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } if (!std::strncmp(ss,"isinf(",6)) { // Is infinite? _cimg_mp_op("Function 'isinf()'"); if (ss6==se1) _cimg_mp_return(0); - arg1 = compile(ss6,se1,depth1,0,is_critical); + arg1 = compile(ss6,se1,depth1,0,block_flags); if (_cimg_mp_is_vector(arg1)) _cimg_mp_vector1_v(mp_isinf,arg1); - if (_cimg_mp_is_constant(arg1)) _cimg_mp_return((unsigned int)cimg::type::is_inf(mem[arg1])); + if (_cimg_mp_is_const_scalar(arg1)) + _cimg_mp_return((unsigned int)cimg::type::is_inf(mem[arg1])); _cimg_mp_scalar1(mp_isinf,arg1); } if (!std::strncmp(ss,"isint(",6)) { // Is integer? _cimg_mp_op("Function 'isint()'"); if (ss6==se1) _cimg_mp_return(0); - try { arg1 = compile(ss6,se1,depth1,0,is_critical); } + try { arg1 = compile(ss6,se1,depth1,0,block_flags); } catch(CImgException&) { _cimg_mp_return(0); } if (_cimg_mp_is_vector(arg1)) _cimg_mp_vector1_v(mp_isint,arg1); - if (_cimg_mp_is_constant(arg1)) _cimg_mp_return((unsigned int)((double)(longT)mem[arg1]==mem[arg1])); + if (_cimg_mp_is_const_scalar(arg1)) + _cimg_mp_return((unsigned int)((double)(longT)mem[arg1]==mem[arg1])); _cimg_mp_scalar1(mp_isint,arg1); } if (!std::strncmp(ss,"isnan(",6)) { // Is NaN? _cimg_mp_op("Function 'isnan()'"); if (ss6==se1) _cimg_mp_return(0); - arg1 = compile(ss6,se1,depth1,0,is_critical); + arg1 = compile(ss6,se1,depth1,0,block_flags); if (_cimg_mp_is_vector(arg1)) _cimg_mp_vector1_v(mp_isnan,arg1); - if (_cimg_mp_is_constant(arg1)) _cimg_mp_return((unsigned int)cimg::type::is_nan(mem[arg1])); + if (_cimg_mp_is_const_scalar(arg1)) + _cimg_mp_return((unsigned int)cimg::type::is_nan(mem[arg1])); _cimg_mp_scalar1(mp_isnan,arg1); } @@ -20378,10 +20957,19 @@ namespace cimg_library_suffixed { if (!std::strncmp(ss,"isexpr(",7)) { // Is valid expression? _cimg_mp_op("Function 'isexpr()'"); if (ss7==se1) _cimg_mp_return(0); - try { arg1 = compile(ss7,se1,depth1,0,is_critical); } + try { arg1 = compile(ss7,se1,depth1,0,block_flags); } catch (CImgException&) { _cimg_mp_return(0); } _cimg_mp_return(1); } + + if (!std::strncmp(ss,"isvarname(",10)) { // Is variable name? + _cimg_mp_op("Function 'isvarname()'"); + arg1 = compile(ss + 10,se1,depth1,0,block_flags); + pos = scalar(); + CImg::vector((ulongT)mp_isvarname,pos,arg1,(ulongT)_cimg_mp_size(arg1)).move_to(code); + return_new_comp = true; + _cimg_mp_return(pos); + } } break; @@ -20395,17 +20983,17 @@ namespace cimg_library_suffixed { if (!std::strncmp(ss,"lerp(",5)) { // Linear interpolation _cimg_mp_op("Function 'lerp()'"); s1 = ss5; while (s1::vector((ulongT)mp_vector_lerp,pos,p1,arg1,arg2,arg3).move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } if (!std::strncmp(ss,"log(",4)) { // Natural logarithm _cimg_mp_op("Function 'log()'"); - arg1 = compile(ss4,se1,depth1,0,is_critical); + arg1 = compile(ss4,se1,depth1,0,block_flags); if (_cimg_mp_is_vector(arg1)) _cimg_mp_vector1_v(mp_log,arg1); - if (_cimg_mp_is_constant(arg1)) _cimg_mp_constant(std::log(mem[arg1])); + if (_cimg_mp_is_const_scalar(arg1)) _cimg_mp_const_scalar(std::log(mem[arg1])); _cimg_mp_scalar1(mp_log,arg1); } if (!std::strncmp(ss,"log2(",5)) { // Base-2 logarithm _cimg_mp_op("Function 'log2()'"); - arg1 = compile(ss5,se1,depth1,0,is_critical); + arg1 = compile(ss5,se1,depth1,0,block_flags); if (_cimg_mp_is_vector(arg1)) _cimg_mp_vector1_v(mp_log2,arg1); - if (_cimg_mp_is_constant(arg1)) _cimg_mp_constant(cimg::log2(mem[arg1])); + if (_cimg_mp_is_const_scalar(arg1)) _cimg_mp_const_scalar(cimg::log2(mem[arg1])); _cimg_mp_scalar1(mp_log2,arg1); } if (!std::strncmp(ss,"log10(",6)) { // Base-10 logarithm _cimg_mp_op("Function 'log10()'"); - arg1 = compile(ss6,se1,depth1,0,is_critical); + arg1 = compile(ss6,se1,depth1,0,block_flags); if (_cimg_mp_is_vector(arg1)) _cimg_mp_vector1_v(mp_log10,arg1); - if (_cimg_mp_is_constant(arg1)) _cimg_mp_constant(std::log10(mem[arg1])); + if (_cimg_mp_is_const_scalar(arg1)) _cimg_mp_const_scalar(std::log10(mem[arg1])); _cimg_mp_scalar1(mp_log10,arg1); } if (!std::strncmp(ss,"lowercase(",10)) { // Lower case _cimg_mp_op("Function 'lowercase()'"); - arg1 = compile(ss + 10,se1,depth1,0,is_critical); + arg1 = compile(ss + 10,se1,depth1,0,block_flags); if (_cimg_mp_is_vector(arg1)) _cimg_mp_vector1_v(mp_lowercase,arg1); - if (_cimg_mp_is_constant(arg1)) _cimg_mp_constant(cimg::lowercase(mem[arg1])); + if (_cimg_mp_is_const_scalar(arg1)) _cimg_mp_const_scalar(cimg::lowercase(mem[arg1])); _cimg_mp_scalar1(mp_lowercase,arg1); } break; case 'm' : + if (!std::strncmp(ss,"map(",4)) { // Map vector + _cimg_mp_op("Function 'map()'"); + s1 = ss4; while (s1::%s: %s: Type of first arguments ('%s') " + "does not match with third argument 'nb_channelsX=%u', " + "in expression '%s'.", + pixel_type(),_cimg_mp_calling_function,s_op, + s_type(arg1)._data,arg3,s0); + } + if (p2%arg4) { + _cimg_mp_strerr; + throw CImgArgumentException("[" cimg_appname "_math_parser] " + "CImg<%s>::%s: %s: Type of second arguments ('%s') " + "does not match with fourth argument 'nb_channelsP=%u', " + "in expression '%s'.", + pixel_type(),_cimg_mp_calling_function,s_op, + s_type(arg2)._data,arg4,s0); + } + pos = vector(p1*arg4); + CImg::vector((ulongT)mp_map,pos,arg1,arg2,p1,p2,arg3,arg4,arg5).move_to(code); + return_new_comp = true; + _cimg_mp_return(pos); + } + if (!std::strncmp(ss,"mul(",4)) { // Matrix multiplication _cimg_mp_op("Function 'mul()'"); s1 = ss4; while (s1::%s: %s: Types of first and second arguments ('%s' and '%s') " "do not match with third argument 'nb_colsB=%u', " - "in expression '%s%s%s'.", + "in expression '%s'.", pixel_type(),_cimg_mp_calling_function,s_op, - s_type(arg1)._data,s_type(arg2)._data,p3, - s0>expr._data?"...":"",s0,se<&expr.back()?"...":""); + s_type(arg1)._data,s_type(arg2)._data,p3,s0); } pos = vector(arg4*p3); CImg::vector((ulongT)mp_matrix_mul,pos,arg1,arg2,arg4,arg5,p3).move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } if (!std::strncmp(ss,"mproj(",6)) { // Project matrix onto dictionary _cimg_mp_op("Function 'mproj()'"); s1 = ss6; while (s1::%s: %s: Type of first argument ('%s') " "do not match with second argument 'nb_colsS=%u', " - "in expression '%s%s%s'.", + "in expression '%s'.", pixel_type(),_cimg_mp_calling_function,s_op, - s_type(arg1)._data,wS, - s0>expr._data?"...":"",s0,se<&expr.back()?"...":""); + s_type(arg1)._data,wS,s0); } if (wD*hD!=p2) { _cimg_mp_strerr; throw CImgArgumentException("[" cimg_appname "_math_parser] " "CImg<%s>::%s: %s: Type of third argument ('%s') " "do not match with fourth argument 'nb_colsD=%u', " - "in expression '%s%s%s'.", + "in expression '%s'.", pixel_type(),_cimg_mp_calling_function,s_op, - s_type(arg3)._data,wD, - s0>expr._data?"...":"",s0,se<&expr.back()?"...":""); + s_type(arg3)._data,wD,s0); } if (hS!=hD) { _cimg_mp_strerr; throw CImgArgumentException("[" cimg_appname "_math_parser] " "CImg<%s>::%s: %s: Type of first argument ('%s') " "do not match with third argument ('%s'), " - "in expression '%s%s%s'.", + "in expression '%s'.", pixel_type(),_cimg_mp_calling_function,s_op, - s_type(arg1)._data,s_type(arg3)._data, - s0>expr._data?"...":"",s0,se<&expr.back()?"...":""); + s_type(arg1)._data,s_type(arg3)._data,s0); } pos = vector(wS*wD); CImg::vector((ulongT)mp_mproj,pos,arg1,wS,hS,arg3,wD,arg5,arg6,p3).move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } + if (!std::strncmp(ss,"mse(",4)) { // Mean-squared error + _cimg_mp_op("Function 'mse()'"); + s1 = ss4; while (s1::%s: %s: First argument cannot be a linked reference, " + "in expression '%s'.", + pixel_type(),_cimg_mp_calling_function,s_op, + s0); + } + + arg1 = ~0U; // Merge operator + // (0='=',1='+',2='-',3='*',4='/',5='&',6='|',7='xor',8='&&',9=='||',10='min',11='max') if (s1::%s: %s: Merge has already been requested before " "for specified variable " - "in expression '%s%s%s'.", - pixel_type(),_cimg_mp_calling_function,s_op, - s0>expr._data?"...":"",s0,se<&expr.back()?"...":""); + "in expression '%s'.", + pixel_type(),_cimg_mp_calling_function,s_op,s0); } if (arg1==~0U) { _cimg_mp_strerr; throw CImgArgumentException("[" cimg_appname "_math_parser] " "CImg<%s>::%s: %s: Invalid specified operator " - "(should be one of '=,+,-,*,/,min,max'), " - "in expression '%s%s%s'.", - pixel_type(),_cimg_mp_calling_function,s_op, - s0>expr._data?"...":"",s0,se<&expr.back()?"...":""); + "(should be one of '=,+,-,*,/,&,|,xor,&&,||,min,max'), " + "in expression '%s'.", + pixel_type(),_cimg_mp_calling_function,s_op,s0); } memmerge.resize(3,memmerge._height + 1,1,1,0,0); memmerge(0,memmerge._height - 1) = (int)pos; memmerge(1,memmerge._height - 1) = (int)_cimg_mp_size(pos); memmerge(2,memmerge._height - 1) = (int)arg1; - _cimg_mp_return(pos); + _cimg_mp_return_nan(); } break; @@ -20603,17 +21264,18 @@ namespace cimg_library_suffixed { _cimg_mp_op("Function 'name()'"); if (*ss5=='#') { // Index specified s0 = ss6; while (s0::vector((ulongT)mp_name,pos,p1,arg1).move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } #endif @@ -20627,7 +21289,7 @@ namespace cimg_library_suffixed { (*ns!=')' || level[ns - expr._data]!=clevel)) ++ns; ++arg1; s = ns; } - _cimg_mp_constant((double)arg1); + _cimg_mp_const_scalar((double)arg1); } if ((cimg_sscanf(ss,"norm%u%c",&(arg1=~0U),&sep)==2 && sep=='(') || @@ -20637,41 +21299,40 @@ namespace cimg_library_suffixed { if (*ss4=='(') { arg1 = 2; s = ss5; } else if (*ss4=='i' && *ss5=='n' && *ss6=='f' && *ss7=='(') { arg1 = ~0U; s = ss8; } else if (arg1==~0U) { - arg1 = compile(ss4,s++,depth1,0,is_critical); - _cimg_mp_check_constant(arg1,0,2); + arg1 = compile(ss4,s++,depth1,0,block_flags); + _cimg_mp_check_const_scalar(arg1,0,2); arg1 = (unsigned int)mem[arg1]; } else s = std::strchr(ss4,'(') + 1; + is_sth = true; // Tell if all arguments are constant pos = scalar(); switch (arg1) { - case 0 : - CImg::vector((ulongT)mp_norm0,pos,0).move_to(l_opcode); break; - case 1 : - CImg::vector((ulongT)mp_norm1,pos,0).move_to(l_opcode); break; - case 2 : - CImg::vector((ulongT)mp_norm2,pos,0).move_to(l_opcode); break; - case ~0U : - CImg::vector((ulongT)mp_norminf,pos,0).move_to(l_opcode); break; - default : - CImg::vector((ulongT)mp_normp,pos,0,(ulongT)(arg1==~0U?-1:(int)arg1)). - move_to(l_opcode); + case 0 : op = mp_norm0; CImg::vector((ulongT)op,pos,0).move_to(l_opcode); break; + case 1 : op = mp_norm1; CImg::vector((ulongT)op,pos,0).move_to(l_opcode); break; + case 2 : op = mp_norm2; CImg::vector((ulongT)op,pos,0).move_to(l_opcode); break; + case ~0U : op = mp_norminf; CImg::vector((ulongT)op,pos,0).move_to(l_opcode); break; + default : op = mp_normp; CImg::vector((ulongT)op,pos,0,(ulongT)(arg1==~0U?-1:(int)arg1)). + move_to(l_opcode); } for ( ; s::sequence(_cimg_mp_size(arg2),arg2 + 1, arg2 + (ulongT)_cimg_mp_size(arg2)). move_to(l_opcode); else CImg::vector(arg2).move_to(l_opcode); + is_sth&=_cimg_mp_is_const_scalar(arg2); s = ns; } (l_opcode>'y').move_to(opcode); + opcode[2] = opcode._height; + if (is_sth) _cimg_mp_const_scalar(op(*this)); if (arg1>0 && opcode._height==4) // Special case with one argument and p>=1 _cimg_mp_scalar1(mp_abs,opcode[3]); - opcode[2] = opcode._height; opcode.move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } break; @@ -20680,37 +21341,41 @@ namespace cimg_library_suffixed { if (!std::strncmp(ss,"permut(",7)) { // Number of permutations _cimg_mp_op("Function 'permut()'"); s1 = ss7; while (s1::vector((ulongT)mp_polygon,_cimg_mp_slot_nan,0,p1).move_to(l_opcode); - for (s = s0; s1 && _cimg_mp_is_vector(arg2)) // Vector argument allowed to specify coordinates and color CImg::sequence(_cimg_mp_size(arg2),arg2 + 1, arg2 + (ulongT)_cimg_mp_size(arg2)). move_to(l_opcode); - else CImg::vector(arg2).move_to(l_opcode); + else { + _cimg_mp_check_type(arg2,pos,1,0); + CImg::vector(arg2).move_to(l_opcode); + } s = ns; } (l_opcode>'y').move_to(opcode); @@ -20719,92 +21384,79 @@ namespace cimg_library_suffixed { _cimg_mp_return_nan(); } - if (!std::strncmp(ss,"print(",6) || !std::strncmp(ss,"prints(",7)) { // Print expressions - is_sth = ss[5]=='s'; // is prints() + if (!std::strncmp(ss,"print(",6) || + !std::strncmp(ss,"prints(",7)) { // Print expressions + s0 = ss6 + (*ss5=='('?0:1); + is_sth = *ss5=='s'; // corresponding string must be printed? _cimg_mp_op(is_sth?"Function 'prints()'":"Function 'print()'"); - s0 = is_sth?ss7:ss6; - if (*s0!='#' || is_sth) { // Regular expression - for (s = s0; s::string(s,true,true).unroll('y'),true); - cimg::strpare(variable_name,false,true); - if (_cimg_mp_is_vector(pos)) // Vector - ((CImg::vector((ulongT)mp_vector_print,pos,0,(ulongT)_cimg_mp_size(pos),is_sth?1:0), - variable_name)>'y').move_to(opcode); - else // Scalar - ((CImg::vector((ulongT)mp_print,pos,0,is_sth?1:0), - variable_name)>'y').move_to(opcode); - opcode[2] = opcode._height; - opcode.move_to(code); - *ns = c1; s = ns; - } - _cimg_mp_return(pos); - } else { // Image - p1 = compile(ss7,se1,depth1,0,is_critical); - _cimg_mp_check_list(true); + if (!is_sth && *s0=='#') { // Image + p1 = compile(ss7,se1,depth1,0,block_flags); + _cimg_mp_check_list(); CImg::vector((ulongT)mp_image_print,_cimg_mp_slot_nan,p1).move_to(code); _cimg_mp_return_nan(); } - } - if (!std::strncmp(ss,"pseudoinvert(",13)) { // Matrix/scalar pseudo-inversion - _cimg_mp_op("Function 'pseudoinvert()'"); - s1 = ss + 13; while (s1::string(s,true,true).unroll('y'),true); + cimg::strpare(variable_name,false,true); + if (_cimg_mp_is_const_scalar(pos)) // Const scalar + std::fprintf(cimg::output(),"\n[" cimg_appname "_math_parser] %s = %.17g " + "(mem[%u]: %s%s)", + variable_name._data,mem[pos],pos,s_type(pos)._data,s_ref(ref)._data); + else // Vector or non-const scalar + std::fprintf(cimg::output(),"\n[" cimg_appname "_math_parser] %s = (uninitialized) " + "(mem[%u]: %s%s)", + variable_name._data,pos,s_type(pos)._data,s_ref(ref)._data); + + if (p_ref) std::memcpy(p_ref,ref,siz_ref); + + if (_cimg_mp_is_vector(pos)) // Vector + ((CImg::vector((ulongT)mp_vector_print,pos,0,(ulongT)_cimg_mp_size(pos),is_sth?1:0), + variable_name)>'y').move_to(opcode); + else // Scalar + ((CImg::vector((ulongT)mp_print,pos,0,is_sth?1:0), + variable_name)>'y').move_to(opcode); + + opcode[2] = opcode._height; + opcode.move_to(code); + *ns = c1; s = ns; } - _cimg_mp_check_type(arg1,1,2,0); - _cimg_mp_check_constant(arg2,2,3); - _cimg_mp_check_type(arg3,3,1,0); - p1 = _cimg_mp_size(arg1); - p2 = (unsigned int)mem[arg2]; - p3 = p1/p2; - if (p3*p2!=p1) { - _cimg_mp_strerr; - throw CImgArgumentException("[" cimg_appname "_math_parser] " - "CImg<%s>::%s: %s: Type of first argument ('%s') " - "does not match with second argument 'nb_colsA=%u', " - "in expression '%s%s%s'.", - pixel_type(),_cimg_mp_calling_function,s_op, - s_type(arg1)._data,p2, - s0>expr._data?"...":"",s0,se<&expr.back()?"...":""); - } - pos = vector(p1); - CImg::vector((ulongT)mp_matrix_pseudoinvert,pos,arg1,p2,p3,arg3).move_to(code); _cimg_mp_return(pos); } break; case 'r' : + if (!std::strncmp(ss,"rad2deg(",8)) { // Degrees to radians + _cimg_mp_op("Function 'rad2deg()'"); + arg1 = compile(ss8,se1,depth1,0,block_flags); + if (_cimg_mp_is_vector(arg1)) _cimg_mp_vector1_v(mp_rad2deg,arg1); + if (_cimg_mp_is_const_scalar(arg1)) _cimg_mp_const_scalar(mem[arg1]*180/cimg::PI); + _cimg_mp_scalar1(mp_rad2deg,arg1); + } + if (!std::strncmp(ss,"ref(",4)) { // Variable declaration _cimg_mp_op("Function 'ref()'"); s1 = ss4; while (s1=se1 || !*s1) compile(s1,s1,depth1,0,is_critical); // Will throw missing argument error - arg3 = compile(ss4,s1++,depth1,p_ref,is_critical); + if (s1>=se1 || !*s1) compile(s1,s1,depth1,0,block_flags); // Will throw missing argument error + arg3 = compile(ss4,s1++,depth1,p_ref,block_flags); *se1 = 0; - is_sth = true; - if (*s1>='0' && *s1<='9') is_sth = false; - else for (ns = s1; *ns; ++ns) if (!is_varchar(*ns)) { is_sth = false; break; } - if (!is_sth) { + + if (!cimg::is_varname(s1)) { // Invalid variable name variable_name.assign(s1,(unsigned int)(se1 + 1 - s1)).back() = 0; cimg::strellipsize(variable_name,64); *se1 = ')'; _cimg_mp_strerr; throw CImgArgumentException("[" cimg_appname "_math_parser] " "CImg<%s>::%s: %s: Invalid specified variable name '%s', " - "in expression '%s%s%s'.", + "in expression '%s'.", pixel_type(),_cimg_mp_calling_function,s_op, - variable_name._data, - s0>expr._data?"...":"",s0,se<&expr.back()?"...":""); - + variable_name._data,s0); } get_variable_pos(s1,arg1,arg2); if (arg2!=~0U) reserved_label[arg2] = arg3; @@ -20815,40 +21467,136 @@ namespace cimg_library_suffixed { CImg::string(s1).move_to(variable_def); } if (_cimg_mp_is_vector(arg3)) - set_variable_vector(arg3); // Prevent from being used in further optimization + set_reserved_vector(arg3); // Prevent from being used in further optimization else if (_cimg_mp_is_comp(arg3)) memtype[arg3] = -1; *se1 = ')'; _cimg_mp_return(arg3); } + if (!std::strncmp(ss,"repeat(",7)) { // Repeat + _cimg_mp_op("Function 'repeat()'"); + s0 = ss7; while (s0::%s: %s: Invalid loop variable name '%s', " + "in expression '%s'.", + pixel_type(),_cimg_mp_calling_function,s_op, + variable_name._data,s0); + } + get_variable_pos(variable_name,arg2,arg3); + arg2 = arg3!=~0U?reserved_label[arg3]:arg2!=~0U?variable_pos[arg2]:~0U; // Variable slot + if (arg2!=~0U && (!_cimg_mp_is_scalar(arg2) || + _cimg_mp_is_const_scalar(arg2))) { // Variable is not a vector or is a constant->error + cimg::strellipsize(variable_name,64); + throw CImgArgumentException("[" cimg_appname "_math_parser] " + "CImg<%s>::%s: %s: Invalid type '%s' for variable '%s' " + "(expected 'scalar'), in expression '%s'.", + pixel_type(),_cimg_mp_calling_function,s_op, + s_type(arg2)._data,variable_name._data,s0); + } else if (arg2==~0U) { // Variable does not exist -> create it + arg2 = scalar(); + if (arg3!=~0U) reserved_label[arg3] = arg2; + else { + if (variable_def._width>=variable_pos._width) variable_pos.resize(-200,1,1,1,0); + variable_pos[variable_def._width] = arg2; + variable_name.move_to(variable_def); + } + memtype[arg2] = -1; + } + arg3 = compile(++s1,se1,depth1,0,block_flags); + } else { // Version with 2 arguments + arg2 = ~0U; + arg3 = compile(s0,se1,depth1,0,block_flags); + } + // arg2 = variable slot, arg3 = fill expression. + CImg::vector((ulongT)mp_repeat,arg3,arg1,arg2,code._width - p1).move_to(code,p1); + _cimg_mp_return_nan(); + } + if (!std::strncmp(ss,"resize(",7)) { // Vector or image resize _cimg_mp_op("Function 'resize()'"); if (*ss7!='#') { // Vector - s1 = ss7; while (s1::vector(arg2).move_to(l_opcode); + s = ns; } - _cimg_mp_check_constant(arg2,2,3); - arg2 = (unsigned int)mem[arg2]; - _cimg_mp_check_type(arg3,3,1,0); - _cimg_mp_check_type(arg4,4,1,0); - pos = vector(arg2); - CImg::vector((ulongT)mp_vector_resize,pos,arg2,arg1,(ulongT)_cimg_mp_size(arg1), - arg3,arg4).move_to(code); + (l_opcode>'y').move_to(opcode); + if (opcode.height()<2) compile(s,se1,depth1,0,block_flags); // Not enough arguments -> throw exception + arg1 = (unsigned int)opcode[0]; // Vector to resize + p1 = _cimg_mp_size(arg1); + + if (opcode.height()<=4) { // Simple vector resize + arg2 = (unsigned int)opcode[1]; + _cimg_mp_check_const_scalar(arg2,2,3); + arg2 = (unsigned int)mem[arg2]; + arg3 = opcode.height()<3?1U:(unsigned int)opcode[2]; + _cimg_mp_check_type(arg3,3,1,0); + arg4 = opcode.height()<4?0U:(unsigned int)opcode[3]; + _cimg_mp_check_type(arg4,4,1,0); + pos = vector(arg2); + CImg::vector((ulongT)mp_vector_resize,pos,arg2,arg1,p1,arg3,arg4).move_to(code); + } else { // Advanced vector resize (vector viewed as an image) + // opcode = [ A, ow,oh,od,os, nw,nh,nd,ns, interp, boundary_cond, ax,ay,az,ac ] + // [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ] + + if (opcode.height()<6) compile(s,se1,depth1,0,block_flags); // Not enough arguments -> throw exception + p2 = opcode.height(); + opcode.resize(1,15,1,1,0); + if (p2<7) opcode[6] = opcode[2]; + if (p2<8) opcode[7] = opcode[3]; + if (p2<9) opcode[8] = opcode[4]; + if (p2<10) opcode[9] = 1; + _cimg_mp_check_const_scalar(opcode[1],2,3); + _cimg_mp_check_const_scalar(opcode[2],3,3); + _cimg_mp_check_const_scalar(opcode[3],4,3); + _cimg_mp_check_const_scalar(opcode[4],5,3); + _cimg_mp_check_const_scalar(opcode[5],6,3); + _cimg_mp_check_const_scalar(opcode[6],7,3); + _cimg_mp_check_const_scalar(opcode[7],8,3); + _cimg_mp_check_const_scalar(opcode[8],9,3); + arg2 = (unsigned int)mem[opcode[1]]; opcode[1] = arg2; + arg3 = (unsigned int)mem[opcode[2]]; opcode[2] = arg3; + arg4 = (unsigned int)mem[opcode[3]]; opcode[3] = arg4; + arg5 = (unsigned int)mem[opcode[4]]; opcode[4] = arg5; + if (arg2*arg3*arg4*arg5!=std::max(1U,p1)) + throw CImgArgumentException("[" cimg_appname "_math_parser] " + "CImg<%s>::%s: %s: Input vector size (%lu values) and its specified " + "geometry (%u,%u,%u,%u) (%lu values) do not match.", + pixel_type(),_cimg_mp_calling_function,s_op, + std::max(p1,1U),arg2,arg3,arg4,arg5,(ulongT)arg2*arg3*arg4*arg5); + arg2 = (unsigned int)mem[opcode[5]]; opcode[5] = arg2; + arg3 = (unsigned int)mem[opcode[6]]; opcode[6] = arg3; + arg4 = (unsigned int)mem[opcode[7]]; opcode[7] = arg4; + arg5 = (unsigned int)mem[opcode[8]]; opcode[8] = arg5; + pos = vector(arg2*arg3*arg4*arg5); + opcode.resize(1,18,1,1,0,0,0,1); + opcode[0] = (ulongT)mp_vector_resize_ext; + opcode[1] = (ulongT)pos; + opcode[2] = (ulongT)p1; + opcode.move_to(code); + } + return_new_comp = true; _cimg_mp_return(pos); } else { // Image - if (!is_critical) is_parallelizable = false; + if (!is_inside_critical) is_parallelizable = false; s0 = ss8; while (s0::vector((ulongT)mp_image_resize,_cimg_mp_slot_nan,p1,~0U,~0U,~0U,~0U,1,0,0,0,0,0). move_to(l_opcode); @@ -20856,7 +21604,7 @@ namespace cimg_library_suffixed { for (s = s0; s10) { _cimg_mp_strerr; throw CImgArgumentException("[" cimg_appname "_math_parser] " - "CImg<%s>::%s: %s: %s arguments, in expression '%s%s%s'.", + "CImg<%s>::%s: %s: %s arguments, in expression '%s'.", pixel_type(),_cimg_mp_calling_function,s_op, - pos<1?"Missing":"Too much", - s0>expr._data?"...":"",s0,se<&expr.back()?"...":""); + pos<1?"Missing":"Too much",s0); } l_opcode[0].move_to(code); _cimg_mp_return_nan(); @@ -20877,23 +21624,24 @@ namespace cimg_library_suffixed { if (!std::strncmp(ss,"reverse(",8)) { // Vector reverse _cimg_mp_op("Function 'reverse()'"); - arg1 = compile(ss8,se1,depth1,0,is_critical); + arg1 = compile(ss8,se1,depth1,0,block_flags); if (!_cimg_mp_is_vector(arg1)) _cimg_mp_return(arg1); p1 = _cimg_mp_size(arg1); pos = vector(p1); CImg::vector((ulongT)mp_vector_reverse,pos,arg1,p1).move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } if (!std::strncmp(ss,"rol(",4) || !std::strncmp(ss,"ror(",4)) { // Bitwise rotation _cimg_mp_op(ss[2]=='l'?"Function 'rol()'":"Function 'ror()'"); s1 = ss4; while (s12) arg3 = arg2 + 1; } - arg4 = compile(++s1,se1,depth1,0,is_critical); + arg4 = compile(++s1,se1,depth1,0,block_flags); } else { - s2 = s1 + 1; while (s2::vector((ulongT)mp_rot2d,pos,arg1).move_to(code); } + return_new_comp = true; _cimg_mp_return(pos); } if (!std::strncmp(ss,"round(",6)) { // Value rounding _cimg_mp_op("Function 'round()'"); s1 = ss6; while (s1::vector((ulongT)mp_run,0,0).move_to(l_opcode); pos = 1; for (s = ss4; s::vector(arg1,_cimg_mp_size(arg1)).move_to(l_opcode); s = ns; } @@ -20972,6 +21724,7 @@ namespace cimg_library_suffixed { opcode[1] = pos; opcode[2] = opcode._height; opcode.move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } #endif @@ -20981,42 +21734,54 @@ namespace cimg_library_suffixed { if (*ss1=='(') { // Image spectrum _cimg_mp_op("Function 's()'"); if (*ss2=='#') { // Index specified - p1 = compile(ss3,se1,depth1,0,is_critical); - _cimg_mp_check_list(false); + p1 = compile(ss3,se1,depth1,0,block_flags); + _cimg_mp_check_list(); } else { if (ss2!=se1) break; p1 = ~0U; } - pos = scalar(); - CImg::vector((ulongT)mp_image_s,pos,p1).move_to(code); - _cimg_mp_return(pos); + _cimg_mp_scalar1(mp_image_s,p1); } if (!std::strncmp(ss,"same(",5)) { // Test if operands have the same values _cimg_mp_op("Function 'same()'"); s1 = ss5; while (s1::vector((ulongT)mp_set,arg2,p2,arg1,p1).move_to(code); + _cimg_mp_return_nan(); + } +#endif + if (!std::strncmp(ss,"shift(",6)) { // Shift vector _cimg_mp_op("Function 'shift()'"); s1 = ss6; while (s1::vector((ulongT)mp_shift,pos,arg1,p1,arg2,arg3).move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } if (!std::strncmp(ss,"sign(",5)) { // Sign _cimg_mp_op("Function 'sign()'"); - arg1 = compile(ss5,se1,depth1,0,is_critical); + arg1 = compile(ss5,se1,depth1,0,block_flags); if (_cimg_mp_is_vector(arg1)) _cimg_mp_vector1_v(mp_sign,arg1); - if (_cimg_mp_is_constant(arg1)) _cimg_mp_constant(cimg::sign(mem[arg1])); + if (_cimg_mp_is_const_scalar(arg1)) _cimg_mp_const_scalar(cimg::sign(mem[arg1])); _cimg_mp_scalar1(mp_sign,arg1); } if (!std::strncmp(ss,"sin(",4)) { // Sine _cimg_mp_op("Function 'sin()'"); - arg1 = compile(ss4,se1,depth1,0,is_critical); + arg1 = compile(ss4,se1,depth1,0,block_flags); if (_cimg_mp_is_vector(arg1)) _cimg_mp_vector1_v(mp_sin,arg1); - if (_cimg_mp_is_constant(arg1)) _cimg_mp_constant(std::sin(mem[arg1])); + if (_cimg_mp_is_const_scalar(arg1)) _cimg_mp_const_scalar(std::sin(mem[arg1])); _cimg_mp_scalar1(mp_sin,arg1); } if (!std::strncmp(ss,"sinc(",5)) { // Sine cardinal _cimg_mp_op("Function 'sinc()'"); - arg1 = compile(ss5,se1,depth1,0,is_critical); + arg1 = compile(ss5,se1,depth1,0,block_flags); if (_cimg_mp_is_vector(arg1)) _cimg_mp_vector1_v(mp_sinc,arg1); - if (_cimg_mp_is_constant(arg1)) _cimg_mp_constant(cimg::sinc(mem[arg1])); + if (_cimg_mp_is_const_scalar(arg1)) _cimg_mp_const_scalar(cimg::sinc(mem[arg1])); _cimg_mp_scalar1(mp_sinc,arg1); } if (!std::strncmp(ss,"sinh(",5)) { // Hyperbolic sine _cimg_mp_op("Function 'sinh()'"); - arg1 = compile(ss5,se1,depth1,0,is_critical); + arg1 = compile(ss5,se1,depth1,0,block_flags); if (_cimg_mp_is_vector(arg1)) _cimg_mp_vector1_v(mp_sinh,arg1); - if (_cimg_mp_is_constant(arg1)) _cimg_mp_constant(std::sinh(mem[arg1])); + if (_cimg_mp_is_const_scalar(arg1)) _cimg_mp_const_scalar(std::sinh(mem[arg1])); _cimg_mp_scalar1(mp_sinh,arg1); } if (!std::strncmp(ss,"size(",5)) { // Vector size _cimg_mp_op("Function 'size()'"); - arg1 = compile(ss5,se1,depth1,0,is_critical); - _cimg_mp_constant(_cimg_mp_is_scalar(arg1)?0:_cimg_mp_size(arg1)); + arg1 = compile(ss5,se1,depth1,0,block_flags); + _cimg_mp_const_scalar(_cimg_mp_is_scalar(arg1)?0:_cimg_mp_size(arg1)); } if (!std::strncmp(ss,"solve(",6)) { // Solve square linear system _cimg_mp_op("Function 'solve()'"); s1 = ss6; while (s1::%s: %s: Types of first and second arguments ('%s' and '%s') " "do not match with third argument 'nb_colsB=%u', " - "in expression '%s%s%s'.", + "in expression '%s'.", pixel_type(),_cimg_mp_calling_function,s_op, - s_type(arg1)._data,s_type(arg2)._data,p3, - s0>expr._data?"...":"",s0,se<&expr.back()?"...":""); + s_type(arg1)._data,s_type(arg2)._data,p3,s0); } - pos = vector(arg4*p3); - CImg::vector((ulongT)mp_solve,pos,arg1,arg2,arg4,arg5,p3).move_to(code); + pos = vector(arg6*p3); + CImg::vector((ulongT)mp_solve,pos,arg1,arg2,arg6,arg5,p3,arg4).move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } if (!std::strncmp(ss,"sort(",5)) { // Sort vector _cimg_mp_op("Function 'sort()'"); s1 = ss5; while (s1::vector((ulongT)mp_sort,pos,arg1,p1,arg2,arg3,arg4).move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } if (!std::strncmp(ss,"sqr(",4)) { // Square _cimg_mp_op("Function 'sqr()'"); - arg1 = compile(ss4,se1,depth1,0,is_critical); + arg1 = compile(ss4,se1,depth1,0,block_flags); if (_cimg_mp_is_vector(arg1)) _cimg_mp_vector1_v(mp_sqr,arg1); - if (_cimg_mp_is_constant(arg1)) _cimg_mp_constant(cimg::sqr(mem[arg1])); + if (_cimg_mp_is_const_scalar(arg1)) _cimg_mp_const_scalar(cimg::sqr(mem[arg1])); _cimg_mp_scalar1(mp_sqr,arg1); } if (!std::strncmp(ss,"sqrt(",5)) { // Square root _cimg_mp_op("Function 'sqrt()'"); - arg1 = compile(ss5,se1,depth1,0,is_critical); + arg1 = compile(ss5,se1,depth1,0,block_flags); if (_cimg_mp_is_vector(arg1)) _cimg_mp_vector1_v(mp_sqrt,arg1); - if (_cimg_mp_is_constant(arg1)) _cimg_mp_constant(std::sqrt(mem[arg1])); + if (_cimg_mp_is_const_scalar(arg1)) _cimg_mp_const_scalar(std::sqrt(mem[arg1])); _cimg_mp_scalar1(mp_sqrt,arg1); } if (!std::strncmp(ss,"srand(",6)) { // Set RNG seed _cimg_mp_op("Function 'srand()'"); - arg1 = ss6::vector((ulongT)mp_image_stats,pos,p1).move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } @@ -21157,78 +21933,61 @@ namespace cimg_library_suffixed { if (!std::strncmp(ss,"store(",6)) { // Store vector to variable _cimg_mp_op("Function 'store()'"); s1 = ss6; while (s1p3) { - _cimg_mp_strerr; - throw CImgArgumentException("[" cimg_appname "_math_parser] " - "CImg<%s>::%s: %s: Specified dimensions (%u,%u,%u,%u) " - "are too large for vector size (%u), " - "in expression '%s%s%s'.", - pixel_type(),_cimg_mp_calling_function,s_op, - varg3,varg4,varg5,varg6,p3, - s0>expr._data?"...":"",s0,se<&expr.back()?"...":""); - } - } - CImg::vector((ulongT)mp_store,_cimg_mp_slot_nan,arg1,p1,arg2,p2, + if (arg3==~0U) arg3 = const_scalar(p3); + CImg::vector((ulongT)mp_store,_cimg_mp_slot_nan,arg2,p2,arg1,p1, arg3,arg4,arg5,arg6,pos).move_to(code); _cimg_mp_return_nan(); } #endif - if (!std::strncmp(ss,"stov(",5)) { // String to double - _cimg_mp_op("Function 'stov()'"); - s1 = ss5; while (s1::vector((ulongT)mp_stov,pos,arg1,p1,arg2,arg3).move_to(code); + CImg::vector((ulongT)mp_s2v,pos,arg1,p1,arg2,arg3).move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } @@ -21238,8 +21997,8 @@ namespace cimg_library_suffixed { if (*ss7=='#') { // Output vector size specified, with '#' s0 = ss8; while (s0::vector(arg2,p2).move_to(l_opcode); @@ -21265,16 +22024,17 @@ namespace cimg_library_suffixed { opcode[2] = arg1; opcode[3] = opcode._height; opcode.move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } if (!std::strncmp(ss,"svd(",4)) { // Matrix SVD _cimg_mp_op("Function 'svd()'"); s1 = ss4; while (s1::%s: %s: Type of first argument ('%s') " "does not match with second argument 'nb_colsA=%u', " - "in expression '%s%s%s'.", + "in expression '%s'.", pixel_type(),_cimg_mp_calling_function,s_op, - s_type(arg1)._data,p2, - s0>expr._data?"...":"",s0,se<&expr.back()?"...":""); + s_type(arg1)._data,p2,s0); } pos = vector(p1 + p2 + p2*p2); CImg::vector((ulongT)mp_matrix_svd,pos,arg1,p2,p3).move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } @@ -21297,18 +22057,17 @@ namespace cimg_library_suffixed { _cimg_mp_op("Function 'swap()'"); s1 = ss5; while (s1::%s: %s: %s argument cannot be a constant, " - "in expression '%s%s%s'.", + "in expression '%s'.", pixel_type(),_cimg_mp_calling_function,s_op, - _cimg_mp_is_constant(arg1)?"First":"Second", - s0>expr._data?"...":"",s0,se<&expr.back()?"...":""); + _cimg_mp_is_const_scalar(arg1)?"First":"Second",s0); } CImg::vector((ulongT)mp_swap,arg1,arg2,p1).move_to(code); @@ -21324,12 +22083,12 @@ namespace cimg_library_suffixed { move_to(code); break; case 2 : // arg1: i/j[_#ind,off] - if (!is_critical) is_parallelizable = false; + if (!is_inside_critical) is_parallelizable = false; p1 = _ref[1]; // Index is_relative = (bool)_ref[2]; arg3 = _ref[3]; // Offset if (p1!=~0U) { - if (listout) + if (imglist) CImg::vector((ulongT)(is_relative?mp_list_set_joff:mp_list_set_ioff), arg1,p1,arg3).move_to(code); } else { @@ -21339,7 +22098,7 @@ namespace cimg_library_suffixed { } break; case 3 : // arg1: i/j(_#ind,_x,_y,_z,_c) - if (!is_critical) is_parallelizable = false; + if (!is_inside_critical) is_parallelizable = false; p1 = _ref[1]; // Index is_relative = (bool)_ref[2]; arg3 = _ref[3]; // X @@ -21347,7 +22106,7 @@ namespace cimg_library_suffixed { arg5 = _ref[5]; // Z arg6 = _ref[6]; // C if (p1!=~0U) { - if (listout) + if (imglist) CImg::vector((ulongT)(is_relative?mp_list_set_jxyzc:mp_list_set_ixyzc), arg1,p1,arg3,arg4,arg5,arg6).move_to(code); } else { @@ -21357,17 +22116,17 @@ namespace cimg_library_suffixed { } break; case 4: // arg1: I/J[_#ind,off] - if (!is_critical) is_parallelizable = false; + if (!is_inside_critical) is_parallelizable = false; p1 = _ref[1]; // Index is_relative = (bool)_ref[2]; arg3 = _ref[3]; // Offset if (p1!=~0U) { - if (listout) { + if (imglist) { if (_cimg_mp_is_scalar(arg1)) CImg::vector((ulongT)(is_relative?mp_list_set_Joff_s:mp_list_set_Ioff_s), arg1,p1,arg3).move_to(code); else { - _cimg_mp_check_constant_index(p1); + _cimg_mp_check_const_index(p1); CImg::vector((ulongT)(is_relative?mp_list_set_Joff_v:mp_list_set_Ioff_v), arg1,p1,arg3,_cimg_mp_size(arg1)).move_to(code); } @@ -21384,19 +22143,19 @@ namespace cimg_library_suffixed { } break; case 5 : // arg1: I/J(_#ind,_x,_y,_z,_c) - if (!is_critical) is_parallelizable = false; + if (!is_inside_critical) is_parallelizable = false; p1 = _ref[1]; // Index is_relative = (bool)_ref[2]; arg3 = _ref[3]; // X arg4 = _ref[4]; // Y arg5 = _ref[5]; // Z if (p1!=~0U) { - if (listout) { + if (imglist) { if (_cimg_mp_is_scalar(arg1)) CImg::vector((ulongT)(is_relative?mp_list_set_Jxyz_s:mp_list_set_Ixyz_s), arg1,p1,arg3,arg4,arg5).move_to(code); else { - _cimg_mp_check_constant_index(p1); + _cimg_mp_check_const_index(p1); CImg::vector((ulongT)(is_relative?mp_list_set_Jxyz_v:mp_list_set_Ixyz_v), arg1,p1,arg3,arg4,arg5,_cimg_mp_size(arg1)).move_to(code); } @@ -21420,30 +22179,30 @@ namespace cimg_library_suffixed { } while (!is_sth); if (p_ref) std::memcpy(p_ref,ref,siz_ref); - _cimg_mp_return(arg1); + _cimg_mp_return_nan(); } break; case 't' : if (!std::strncmp(ss,"tan(",4)) { // Tangent _cimg_mp_op("Function 'tan()'"); - arg1 = compile(ss4,se1,depth1,0,is_critical); + arg1 = compile(ss4,se1,depth1,0,block_flags); if (_cimg_mp_is_vector(arg1)) _cimg_mp_vector1_v(mp_tan,arg1); - if (_cimg_mp_is_constant(arg1)) _cimg_mp_constant(std::tan(mem[arg1])); + if (_cimg_mp_is_const_scalar(arg1)) _cimg_mp_const_scalar(std::tan(mem[arg1])); _cimg_mp_scalar1(mp_tan,arg1); } if (!std::strncmp(ss,"tanh(",5)) { // Hyperbolic tangent _cimg_mp_op("Function 'tanh()'"); - arg1 = compile(ss5,se1,depth1,0,is_critical); + arg1 = compile(ss5,se1,depth1,0,block_flags); if (_cimg_mp_is_vector(arg1)) _cimg_mp_vector1_v(mp_tanh,arg1); - if (_cimg_mp_is_constant(arg1)) _cimg_mp_constant(std::tanh(mem[arg1])); + if (_cimg_mp_is_const_scalar(arg1)) _cimg_mp_const_scalar(std::tanh(mem[arg1])); _cimg_mp_scalar1(mp_tanh,arg1); } if (!std::strncmp(ss,"trace(",6)) { // Matrix trace _cimg_mp_op("Function 'trace()'"); - arg1 = compile(ss6,se1,depth1,0,is_critical); + arg1 = compile(ss6,se1,depth1,0,block_flags); _cimg_mp_check_matrix_square(arg1,1); p1 = (unsigned int)cimg::round(std::sqrt((float)_cimg_mp_size(arg1))); _cimg_mp_scalar2(mp_trace,arg1,p1); @@ -21452,10 +22211,10 @@ namespace cimg_library_suffixed { if (!std::strncmp(ss,"transpose(",10)) { // Matrix transpose _cimg_mp_op("Function 'transpose()'"); s1 = ss + 10; while (s1::%s: %s: Size of first argument ('%s') does not match " - "second argument 'nb_cols=%u', in expression '%s%s%s'.", + "second argument 'nb_cols=%u', in expression '%s'.", pixel_type(),_cimg_mp_calling_function,s_op, - s_type(arg1)._data,p2, - s0>expr._data?"...":"",s0,se<&expr.back()?"...":""); + s_type(arg1)._data,p2,s0); } pos = vector(p3*p2); CImg::vector((ulongT)mp_transpose,pos,arg1,p2,p3).move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } break; case 'u' : - if (*ss1=='(') { // Random value with uniform distribution + if (*ss1=='(') { // Random value with uniform distribution in specified range _cimg_mp_op("Function 'u()'"); if (*ss2==')') _cimg_mp_scalar2(mp_u,0,1); s1 = ss2; while (s1float conversion _cimg_mp_op("Function 'ui2f()'"); - arg1 = compile(ss5,se1,depth1,0,is_critical); + arg1 = compile(ss5,se1,depth1,0,block_flags); if (_cimg_mp_is_vector(arg1)) _cimg_mp_vector1_v(mp_ui2f,arg1); - if (_cimg_mp_is_constant(arg1)) _cimg_mp_constant((double)cimg::uint2float((unsigned int)mem[arg1])); + if (_cimg_mp_is_const_scalar(arg1)) + _cimg_mp_const_scalar((double)cimg::uint2float((unsigned int)mem[arg1])); _cimg_mp_scalar1(mp_ui2f,arg1); } @@ -21515,16 +22299,16 @@ namespace cimg_library_suffixed { --variable_pos._width; } *s1 = c1; - } else compile(s0,s1,depth1,0,is_critical); // Will throw a 'missing argument' exception + } else compile(s0,s1,depth1,0,block_flags); // Will throw a 'missing argument' exception } _cimg_mp_return(arg1!=~0U?arg1:_cimg_mp_slot_nan); // Return value of last specified variable } if (!std::strncmp(ss,"uppercase(",10)) { // Upper case _cimg_mp_op("Function 'uppercase()'"); - arg1 = compile(ss + 10,se1,depth1,0,is_critical); + arg1 = compile(ss + 10,se1,depth1,0,block_flags); if (_cimg_mp_is_vector(arg1)) _cimg_mp_vector1_v(mp_uppercase,arg1); - if (_cimg_mp_is_constant(arg1)) _cimg_mp_constant(cimg::uppercase(mem[arg1])); + if (_cimg_mp_is_const_scalar(arg1)) _cimg_mp_const_scalar(cimg::uppercase(mem[arg1])); _cimg_mp_scalar1(mp_uppercase,arg1); } break; @@ -21536,15 +22320,15 @@ namespace cimg_library_suffixed { _cimg_mp_op("Function 'vector()'"); arg2 = 0; // Number of specified values if (arg1==~0U && *ss6!='(') { - arg1 = compile(ss6,s++,depth1,0,is_critical); - _cimg_mp_check_constant(arg1,0,3); + arg1 = compile(ss6,s++,depth1,0,block_flags); + _cimg_mp_check_const_scalar(arg1,0,3); arg1 = (unsigned int)mem[arg1]; } else s = std::strchr(ss6,'(') + 1; if (arg1==~0U && *s=='#') { // Number of elements specified as first argument with '#' s0 = ++s; while (s0::sequence(arg4,arg3 + 1,arg3 + arg4).move_to(l_opcode); @@ -21567,6 +22351,7 @@ namespace cimg_library_suffixed { (l_opcode>'y').move_to(opcode); opcode[2] = opcode._height; opcode.move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } @@ -21612,7 +22397,7 @@ namespace cimg_library_suffixed { for (s = std::strchr(ss,'(') + 1; s::vector((ulongT)mp_vtos,pos,p1,arg1,_cimg_mp_size(arg1),arg2).move_to(code); + CImg::vector((ulongT)mp_v2s,pos,p1,arg1,_cimg_mp_size(arg1),arg2).move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } break; @@ -21657,45 +22444,37 @@ namespace cimg_library_suffixed { if (*ss1=='(') { // Image width _cimg_mp_op("Function 'w()'"); if (*ss2=='#') { // Index specified - p1 = compile(ss3,se1,depth1,0,is_critical); - _cimg_mp_check_list(false); + p1 = compile(ss3,se1,depth1,0,block_flags); + _cimg_mp_check_list(); } else { if (ss2!=se1) break; p1 = ~0U; } - pos = scalar(); - CImg::vector((ulongT)mp_image_w,pos,p1).move_to(code); - _cimg_mp_return(pos); + _cimg_mp_scalar1(mp_image_w,p1); } if (*ss1=='h' && *ss2=='(') { // Image width*height _cimg_mp_op("Function 'wh()'"); if (*ss3=='#') { // Index specified - p1 = compile(ss4,se1,depth1,0,is_critical); - _cimg_mp_check_list(false); + p1 = compile(ss4,se1,depth1,0,block_flags); + _cimg_mp_check_list(); } else { if (ss3!=se1) break; p1 = ~0U; } - pos = scalar(); - CImg::vector((ulongT)mp_image_wh,pos,p1).move_to(code); - _cimg_mp_return(pos); + _cimg_mp_scalar1(mp_image_wh,p1); } if (*ss1=='h' && *ss2=='d' && *ss3=='(') { // Image width*height*depth _cimg_mp_op("Function 'whd()'"); if (*ss4=='#') { // Index specified - p1 = compile(ss5,se1,depth1,0,is_critical); - _cimg_mp_check_list(false); + p1 = compile(ss5,se1,depth1,0,block_flags); + _cimg_mp_check_list(); } else { if (ss4!=se1) break; p1 = ~0U; } - pos = scalar(); - CImg::vector((ulongT)mp_image_whd,pos,p1).move_to(code); - _cimg_mp_return(pos); + _cimg_mp_scalar1(mp_image_whd,p1); } if (*ss1=='h' && *ss2=='d' && *ss3=='s' && *ss4=='(') { // Image width*height*depth*spectrum _cimg_mp_op("Function 'whds()'"); if (*ss5=='#') { // Index specified - p1 = compile(ss6,se1,depth1,0,is_critical); - _cimg_mp_check_list(false); + p1 = compile(ss6,se1,depth1,0,block_flags); + _cimg_mp_check_list(); } else { if (ss5!=se1) break; p1 = ~0U; } - pos = scalar(); - CImg::vector((ulongT)mp_image_whds,pos,p1).move_to(code); - _cimg_mp_return(pos); + _cimg_mp_scalar1(mp_image_whds,p1); } if (!std::strncmp(ss,"while(",6)) { // While...do @@ -21703,15 +22482,15 @@ namespace cimg_library_suffixed { s0 = *ss5=='('?ss6:ss8; s1 = s0; while (s1::vector((ulongT)mp_while,pos,arg1,p2 - p1,code._width - p2,arg2, - pos>=arg6 && !_cimg_mp_is_constant(pos), - arg1>=arg6 && !_cimg_mp_is_constant(arg1)).move_to(code,p1); + pos>=arg6 && !_cimg_mp_is_const_scalar(pos), + arg1>=arg6 && !_cimg_mp_is_const_scalar(arg1)).move_to(code,p1); _cimg_mp_return(pos); } break; @@ -21720,14 +22499,14 @@ namespace cimg_library_suffixed { if (!std::strncmp(ss,"xor(",4)) { // Xor _cimg_mp_op("Function 'xor()'"); s1 = ss4; while (s1::sequence(_cimg_mp_size(arg2),arg2 + 1, arg2 + (ulongT)_cimg_mp_size(arg2)). move_to(l_opcode); else CImg::vector(arg2).move_to(l_opcode); - is_sth&=_cimg_mp_is_constant(arg2); + is_sth&=_cimg_mp_is_const_scalar(arg2); s = ns; } (l_opcode>'y').move_to(opcode); opcode[2] = opcode._height; - if (is_sth) _cimg_mp_constant(op(*this)); + if (is_sth) _cimg_mp_const_scalar(op(*this)); opcode.move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } @@ -21805,28 +22585,40 @@ namespace cimg_library_suffixed { (*ns!=')' || level[ns - expr._data]!=clevel)) ++ns; } + char mb = 0; arg3 = 0; // Number of possible name matches cimglist_for(macro_def,l) if (!std::strcmp(macro_def[l],variable_name) && ++arg3 && - macro_def[l].back()==(char)p1) { - p2 = (unsigned int)macro_def[l].back(); // Number of required arguments + ((mb = macro_def[l].back())==(char)p1 || mb==(char)-1)) { + const bool is_variadic = mb==(char)-1; + p2 = is_variadic?1U:(unsigned int)mb; // Number of required arguments CImg _expr = macro_body[l]; // Expression to be substituted p1 = 1; // Index of current parsed argument for (s = s0 + 1; s<=se1; ++p1, s = ns + 1) { // Parse function arguments while (*s && cimg::is_blank(*s)) ++s; - if (*s==')' && p1==1) break; // Function has no arguments + if (!is_variadic && *s==')' && p1==1) break; // Function has no arguments if (p1>p2) { ++p1; break; } - ns = s; while (ns1) { + _expr.resize(arg1 + variable_name._width - 2,1,1,1,0); + std::memmove(_expr._data + k + variable_name._width - 1,_expr._data + k + 1,arg1 - k - 1); + std::memcpy(_expr._data + k,variable_name,variable_name._width - 1); + k+=variable_name._width - 2; + } else { + std::memmove(_expr._data + k,_expr._data + k + 1,arg1 - k - 1); + --k; + } } ++arg2; } @@ -21847,7 +22639,7 @@ namespace cimg_library_suffixed { level.swap(_level); s0 = user_macro; user_macro = macro_def[l]; - pos = compile(expr._data,expr._data + expr._width - 1,depth1,p_ref,is_critical); + pos = compile(expr._data,expr._data + expr._width - 1,depth1,p_ref,block_flags); user_macro = s0; level.swap(_level); pexpr.swap(_pexpr); @@ -21869,18 +22661,16 @@ namespace cimg_library_suffixed { throw CImgArgumentException("[" cimg_appname "_math_parser] " "CImg<%s>::%s: Function '%s()': Number of specified arguments (%u) " "does not match macro declaration (defined for %s or %u arguments), " - "in expression '%s%s%s'.", + "in expression '%s'.", pixel_type(),_cimg_mp_calling_function,variable_name._data, - p1,sig_nargs.value_string()._data,arg1, - s0>expr._data?"...":"",s0,se<&expr.back()?"...":""); + p1,sig_nargs.value_string()._data,arg1,s0); } else throw CImgArgumentException("[" cimg_appname "_math_parser] " "CImg<%s>::%s: Function '%s()': Number of specified arguments (%u) " "does not match macro declaration (defined for %u argument%s), " - "in expression '%s%s%s'.", + "in expression '%s'.", pixel_type(),_cimg_mp_calling_function,variable_name._data, - p1,*sig_nargs,*sig_nargs!=1?"s":"", - s0>expr._data?"...":"",s0,se<&expr.back()?"...":""); + p1,*sig_nargs,*sig_nargs!=1?"s":"",s0); } } } // if (se1==')') @@ -21899,21 +22689,21 @@ namespace cimg_library_suffixed { } if (!arg1) _cimg_mp_return(0); // Empty string -> 0 if (*ss=='_') { - if (arg1==1) _cimg_mp_constant((unsigned char)*variable_name); + if (arg1==1) _cimg_mp_const_scalar((unsigned char)*variable_name); _cimg_mp_strerr; cimg::strellipsize(variable_name,64); throw CImgArgumentException("[" cimg_appname "_math_parser] " "CImg<%s>::%s: %s: Literal %s contains more than one byte, " - "in expression '%s%s%s'.", + "in expression '%s'.", pixel_type(),_cimg_mp_calling_function,s_op, - ss1, - s0>expr._data?"...":"",s0,se<&expr.back()?"...":""); + ss1,s0); } pos = vector(arg1); CImg::vector((ulongT)mp_string_init,pos,arg1).move_to(l_opcode); CImg(1,arg1/sizeof(ulongT) + (arg1%sizeof(ulongT)?1:0)).move_to(l_opcode); std::memcpy((char*)l_opcode[1]._data,variable_name,arg1); (l_opcode>'y').move_to(code); + return_new_comp = true; _cimg_mp_return(pos); } @@ -21940,7 +22730,7 @@ namespace cimg_library_suffixed { if (*ss1!=']') for (s = ss1; s::sequence(arg3,arg2 + 1,arg2 + arg3).move_to(l_opcode); @@ -21955,96 +22745,100 @@ namespace cimg_library_suffixed { opcode[2] = opcode._height; opcode.move_to(code); } + return_new_comp = true; _cimg_mp_return(pos); } // Variables related to the input list of images. if (*ss1=='#' && ss2::vector((ulongT)mp_list_Joff,pos,p1,0,0,p2).move_to(code); + return_new_comp = true; _cimg_mp_return(pos); case 'R' : // R#ind - if (!listin) _cimg_mp_return(0); + if (!imglist) _cimg_mp_return(0); _cimg_mp_scalar7(mp_list_ixyzc,arg1,_cimg_mp_slot_x,_cimg_mp_slot_y,_cimg_mp_slot_z,0, 0,_cimg_mp_boundary); case 'G' : // G#ind - if (!listin) _cimg_mp_return(0); + if (!imglist) _cimg_mp_return(0); _cimg_mp_scalar7(mp_list_ixyzc,arg1,_cimg_mp_slot_x,_cimg_mp_slot_y,_cimg_mp_slot_z,1, 0,_cimg_mp_boundary); case 'B' : // B#ind - if (!listin) _cimg_mp_return(0); + if (!imglist) _cimg_mp_return(0); _cimg_mp_scalar7(mp_list_ixyzc,arg1,_cimg_mp_slot_x,_cimg_mp_slot_y,_cimg_mp_slot_z,2, 0,_cimg_mp_boundary); case 'A' : // A#ind - if (!listin) _cimg_mp_return(0); + if (!imglist) _cimg_mp_return(0); _cimg_mp_scalar7(mp_list_ixyzc,arg1,_cimg_mp_slot_x,_cimg_mp_slot_y,_cimg_mp_slot_z,3, 0,_cimg_mp_boundary); } } if (*ss1 && *ss2=='#' && ss3='0' && *ss1<='9') { // i0#ind...i9#ind - if (!listin) _cimg_mp_return(0); + if (!imglist) _cimg_mp_return(0); _cimg_mp_scalar7(mp_list_ixyzc,arg1,_cimg_mp_slot_x,_cimg_mp_slot_y,_cimg_mp_slot_z,*ss1 - '0', 0,_cimg_mp_boundary); } if (*ss1=='c') { // ic#ind - if (!listin) _cimg_mp_return(0); - if (_cimg_mp_is_constant(arg1)) { - if (!list_median) list_median.assign(listin._width); - if (!list_median[p1]) CImg::vector(listin[p1].median()).move_to(list_median[p1]); - _cimg_mp_constant(*list_median[p1]); + if (!imglist) _cimg_mp_return(0); + if (_cimg_mp_is_const_scalar(arg1)) { + if (!list_median) list_median.assign(imglist._width); + if (!list_median[p1]) CImg::vector(imglist[p1].median()).move_to(list_median[p1]); + _cimg_mp_const_scalar(*list_median[p1]); } _cimg_mp_scalar1(mp_list_median,arg1); } if (*ss1=='n') { // in#ind - if (!listin) _cimg_mp_return(0); - if (_cimg_mp_is_constant(arg1)) { - if (!list_norm) list_norm.assign(listin._width); - if (!list_norm[p1]) CImg::vector(listin[p1].magnitude()).move_to(list_norm[p1]); - _cimg_mp_constant(*list_norm[p1]); + if (!imglist) _cimg_mp_return(0); + if (_cimg_mp_is_const_scalar(arg1)) { + if (!list_norm) list_norm.assign(imglist._width); + if (!list_norm[p1]) CImg::vector(imglist[p1].magnitude()).move_to(list_norm[p1]); + _cimg_mp_const_scalar(*list_norm[p1]); } _cimg_mp_scalar1(mp_list_norm,arg1); } @@ -22069,41 +22863,44 @@ namespace cimg_library_suffixed { case 'c' : arg2 = 11; break; // cM#ind } if (arg2!=~0U) { - if (!listin) _cimg_mp_return(0); - if (_cimg_mp_is_constant(arg1)) { - if (!list_stats) list_stats.assign(listin._width); - if (!list_stats[p1]) list_stats[p1].assign(1,14,1,1,0).fill(listin[p1].get_stats(),false); - _cimg_mp_constant(list_stats(p1,arg2)); + if (!imglist) _cimg_mp_return(0); + if (_cimg_mp_is_const_scalar(arg1)) { + if (!list_stats) list_stats.assign(imglist._width); + if (!list_stats[p1]) list_stats[p1].assign(1,14,1,1,0).fill(imglist[p1].get_stats(),false); + _cimg_mp_const_scalar(list_stats(p1,arg2)); } _cimg_mp_scalar2(mp_list_stats,arg1,arg2); } } if (*ss=='w' && *ss1=='h' && *ss2=='d' && *ss3=='#' && ss4='0' && *variable_name<='9') is_sth = false; - else for (ns = variable_name; *ns; ++ns) - if (!is_varchar(*ns)) { is_sth = false; break; } - if (is_sth) { + +#ifdef cimg_mp_operator_dollar + if (*ss=='$' && ss1::%s: Undefined variable '%s' in expression '%s%s%s'.", + "CImg<%s>::%s: Undefined variable '%s' in expression '%s'.", pixel_type(),_cimg_mp_calling_function, - variable_name._data, - s0>expr._data?"...":"",s0,se<&expr.back()?"...":""); + variable_name._data,s0); s1 = std::strchr(ss,'('); s_op = s1 && c1==')'?"function call":"item"; throw CImgArgumentException("[" cimg_appname "_math_parser] " - "CImg<%s>::%s: Unrecognized %s '%s' in expression '%s%s%s'.", + "CImg<%s>::%s: Unrecognized %s '%s' in expression '%s'.", pixel_type(),_cimg_mp_calling_function, - s_op,variable_name._data, - s0>expr._data?"...":"",s0,se<&expr.back()?"...":""); + s_op,variable_name._data,s0); } // Evaluation procedure. @@ -22158,12 +22953,7 @@ namespace cimg_library_suffixed { // Evaluation procedure for begin_t() bloc. void begin_t() { if (!code_begin_t) return; - if (imgin) { - mem[_cimg_mp_slot_x] = imgin._width - 1.; - mem[_cimg_mp_slot_y] = imgin._height - 1.; - mem[_cimg_mp_slot_z] = imgin._depth - 1.; - mem[_cimg_mp_slot_c] = imgin._spectrum - 1.; - } else mem[_cimg_mp_slot_x] = mem[_cimg_mp_slot_y] = mem[_cimg_mp_slot_z] = mem[_cimg_mp_slot_c] = 0; + mem[_cimg_mp_slot_x] = mem[_cimg_mp_slot_y] = mem[_cimg_mp_slot_z] = mem[_cimg_mp_slot_c] = 0; p_code_end = code_begin_t.end(); for (p_code = code_begin_t; p_code_data; @@ -22217,33 +23007,59 @@ namespace cimg_library_suffixed { siz = (unsigned int)mp.memmerge(1,k), iop = (unsigned int)mp.memmerge(2,k); if (!siz) switch (iop) { // Scalar value - case 0 : mp.mem[pos] = mem[pos]; break; // Assignment - case 1 : mp.mem[pos]+=mem[pos]; break; // Operator+ - case 2 : mp.mem[pos]-=mem[pos]; break; // Operator- - case 3 : mp.mem[pos]*=mem[pos]; break; // Operator* - case 4 : mp.mem[pos]/=mem[pos]; break; // Operator/ - case 5 : mp.mem[pos] = std::min(mp.mem[pos],mem[pos]); break; // Operator 'min' - case 6 : mp.mem[pos] = std::max(mp.mem[pos],mem[pos]); break; // Operator 'max' + case 0 : mp.mem[pos] = mem[pos]; break; // Assignment + case 1 : mp.mem[pos]+=mem[pos]; break; // Operator+ + case 2 : mp.mem[pos]-=mem[pos]; break; // Operator- + case 3 : mp.mem[pos]*=mem[pos]; break; // Operator* + case 4 : mp.mem[pos]/=mem[pos]; break; // Operator/ + case 5 : mp.mem[pos] = (double)((longT)mp.mem[pos] & (longT)mem[pos]); break; // Operator& + case 6 : mp.mem[pos] = (double)((longT)mp.mem[pos] | (longT)mem[pos]); break; // Operator| + case 7 : mp.mem[pos] = (double)((longT)mp.mem[pos] ^ (longT)mem[pos]); break; // Operator 'xor' + case 8 : mp.mem[pos] = mp.mem[pos] && mem[pos]; break; // Operator&& + case 9 : mp.mem[pos] = mp.mem[pos] || mem[pos]; break; // Operator|| + case 10 : mp.mem[pos] = std::min(mp.mem[pos],mem[pos]); break; // Operator 'min' + case 11 : mp.mem[pos] = std::max(mp.mem[pos],mem[pos]); break; // Operator 'max' } else switch (iop) { // Vector value - case 0 : + case 0 : // Assignment CImg(&mp.mem[pos + 1],siz,1,1,1,true) = CImg(&mem[pos + 1],siz,1,1,1,true); break; - case 1 : + case 1 : // Operator+ CImg(&mp.mem[pos + 1],siz,1,1,1,true)+=CImg(&mem[pos + 1],siz,1,1,1,true); break; - case 2 : + case 2 : // Operator- CImg(&mp.mem[pos + 1],siz,1,1,1,true)-=CImg(&mem[pos + 1],siz,1,1,1,true); break; - case 3 : + case 3 : // Operator* CImg(&mp.mem[pos + 1],siz,1,1,1,true)*=CImg(&mem[pos + 1],siz,1,1,1,true); break; - case 4 : + case 4 : // Operator/ CImg(&mp.mem[pos + 1],siz,1,1,1,true)/=CImg(&mem[pos + 1],siz,1,1,1,true); break; - case 5 : + case 5 : // Operator& + CImg(&mp.mem[pos + 1],siz,1,1,1,true)&=CImg(&mem[pos + 1],siz,1,1,1,true); + break; + case 6 : // Operator| + CImg(&mp.mem[pos + 1],siz,1,1,1,true)|=CImg(&mem[pos + 1],siz,1,1,1,true); + break; + case 7 : // Operator 'xor' + CImg(&mp.mem[pos + 1],siz,1,1,1,true)^=CImg(&mem[pos + 1],siz,1,1,1,true); + break; + case 8 : { // Operator&& + CImg + arg1(&mp.mem[pos + 1],siz,1,1,1,true), + arg2(&mem[pos + 1],siz,1,1,1,true); + cimg_foroff(arg1,off) arg1[off] = arg1[off] && arg2[off]; + } break; + case 9 : { // Operator|| + CImg + arg1(&mp.mem[pos + 1],siz,1,1,1,true), + arg2(&mem[pos + 1],siz,1,1,1,true); + cimg_foroff(arg1,off) arg1[off] = arg1[off] || arg2[off]; + } break; + case 10 : // Operator 'min' CImg(&mp.mem[pos + 1],siz,1,1,1,true).min(CImg(&mem[pos + 1],siz,1,1,1,true)); break; - case 6 : + case 11 : // Operator 'max' CImg(&mp.mem[pos + 1],siz,1,1,1,true).max(CImg(&mem[pos + 1],siz,1,1,1,true)); break; } @@ -22275,13 +23091,60 @@ namespace cimg_library_suffixed { return res; } - // Return type of a memory element as a string. + // Return type of a memory slot as a string. CImg s_type(const unsigned int arg) const { CImg res; if (_cimg_mp_is_vector(arg)) { // Vector CImg::string("vectorXXXXXXXXXXXXXXXX").move_to(res); - cimg_sprintf(res._data + 6,"%u",_cimg_mp_size(arg)); - } else CImg::string("scalar").move_to(res); + cimg_snprintf(res._data + 6,res._width - 6,"%u",_cimg_mp_size(arg)); + } else if (_cimg_mp_is_const_scalar(arg)) CImg::string("const scalar").move_to(res); // Const scalar + else CImg::string("scalar").move_to(res); // Scalar + return res; + } + + // Return reference state of a memory slot as a string. + CImg s_ref(const unsigned int *const p_ref) const { + CImg res; + if (!p_ref || !*p_ref) return res.assign(1,1,1,1,0); + res.assign(32); + switch (p_ref[0]) { + case 1 : // Reference to vector value as a scalar + cimg_snprintf(res,res._width,", ref: ([%u])[%u]", + p_ref[1],p_ref[2]); + break; + case 2 : // Reference to image value as a scalar (offset) + if (p_ref[1]==~0U) + cimg_snprintf(res,res._width,", ref: %c[%u]", + p_ref[2]?'j':'i',p_ref[3]); + else + cimg_snprintf(res,res._width,", ref: %c[#%u,%u]", + p_ref[2]?'j':'i',p_ref[1],p_ref[3]); + break; + case 3 : // Reference to image value as a scalar (coordinates) + if (p_ref[1]==~0U) + cimg_snprintf(res,res._width,", ref: %c(%u,%u,%u,%u)", + p_ref[2]?'j':'i',p_ref[3],p_ref[4],p_ref[5],p_ref[6]); + else + cimg_snprintf(res,res._width,", ref: %c(#%u,%u,%u,%u,%u)", + p_ref[2]?'j':'i',p_ref[1],p_ref[3],p_ref[4],p_ref[5],p_ref[6]); + break; + case 4 : // Reference to image value as a vector (offset) + if (p_ref[1]==~0U) + cimg_snprintf(res,res._width,", ref: %c[%u]", + p_ref[2]?'J':'I',p_ref[3]); + else + cimg_snprintf(res,res._width,", ref: %c[#%u,%u]", + p_ref[2]?'J':'I',p_ref[1],p_ref[3]); + break; + case 5 : // Reference to image value as a vector (coordinates) + if (p_ref[1]==~0U) + cimg_snprintf(res,res._width,", ref: %c(%u,%u,%u)", + p_ref[2]?'J':'I',p_ref[3],p_ref[4],p_ref[5]); + else + cimg_snprintf(res,res._width,", ref: %c(#%u,%u,%u,%u)", + p_ref[2]?'J':'I',p_ref[1],p_ref[3],p_ref[4],p_ref[5]); + break; + } return res; } @@ -22324,16 +23187,16 @@ namespace cimg_library_suffixed { return res; } - // Find and return index of current image 'imgin' within image list 'listin'. + // Find and return index of current image 'imgin' within image list 'imglist'. unsigned int get_mem_img_index() { if (mem_img_index==~0U) { - if (&imgout>listout.data() && &imgoutimglist.data() && &imgout='0' && c2<='9') rp = 20 + c2 - '0'; // i0...i9 + if (c2>='0' && c2<='9') rp = 21 + c2 - '0'; // i0...i9 else if (c2=='m') rp = 4; // im else if (c2=='M') rp = 5; // iM else if (c2=='a') rp = 6; // ia else if (c2=='v') rp = 7; // iv - else if (c2=='s') rp = 8; // is - else if (c2=='p') rp = 9; // ip - else if (c2=='c') rp = 10; // ic - else if (c2=='n') rp = 11; // in + else if (c2=='d') rp = 8; // id + else if (c2=='s') rp = 9; // is + else if (c2=='p') rp = 10; // ip + else if (c2=='c') rp = 11; // ic + else if (c2=='n') rp = 12; // in } else if (c2=='m') { - if (c1=='x') rp = 12; // xm - else if (c1=='y') rp = 13; // ym - else if (c1=='z') rp = 14; // zm - else if (c1=='c') rp = 15; // cm + if (c1=='x') rp = 13; // xm + else if (c1=='y') rp = 14; // ym + else if (c1=='z') rp = 15; // zm + else if (c1=='c') rp = 16; // cm } else if (c2=='M') { - if (c1=='x') rp = 16; // xM - else if (c1=='y') rp = 17; // yM - else if (c1=='z') rp = 18; // zM - else if (c1=='c') rp = 19; // cM + if (c1=='x') rp = 17; // xM + else if (c1=='y') rp = 18; // yM + else if (c1=='z') rp = 19; // zM + else if (c1=='c') rp = 20; // cM } } else if (variable_name[1] && variable_name[2] && !variable_name[3]) { // Three-chars variable c1 = variable_name[0]; @@ -22384,8 +23248,8 @@ namespace cimg_library_suffixed { c3 = variable_name[2]; c4 = variable_name[3]; if (c1=='w' && c2=='h' && c3=='d' && c4=='s') rp = 2; // whds - } else if (!std::strcmp(variable_name,"interpolation")) rp = 30; // interpolation - else if (!std::strcmp(variable_name,"boundary")) rp = 31; // boundary + } else if (!std::strcmp(variable_name,"interpolation")) rp = 31; // interpolation + else if (!std::strcmp(variable_name,"boundary")) rp = 32; // boundary if (rp!=~0U) { rpos = rp; return; } // One of the reserved labels @@ -22394,36 +23258,10 @@ namespace cimg_library_suffixed { if (!std::strcmp(variable_name,variable_def[i])) { pos = i; break; } } - // Tell for each character of an expression if it is inside a string or not. - CImg is_inside_string(CImg& _expr) const { - bool is_escaped = false, next_is_escaped = false; - unsigned int mode = 0, next_mode = 0; // { 0=normal | 1=char-string | 2=vector-string - CImg res = CImg::string(_expr); - bool *pd = res._data; - for (const char *ps = _expr._data; *ps; ++ps) { - if (!next_is_escaped && *ps=='\\') next_is_escaped = true; - if (!is_escaped && *ps=='\'') { // Non-escaped character - if (!mode && ps>_expr._data && *(ps - 1)=='[') next_mode = mode = 2; // Start vector-string - else if (mode==2 && *(ps + 1)==']') next_mode = !mode; // End vector-string - else if (mode<2) next_mode = mode?(mode = 0):1; // Start/end char-string - } - *(pd++) = mode>=1 || is_escaped; - mode = next_mode; - is_escaped = next_is_escaped; - next_is_escaped = false; - } - return res; - } - - // Return true if specified argument can be a part of an allowed variable name. - bool is_varchar(const char c) const { - return (c>='a' && c<='z') || (c>='A' && c<='Z') || (c>='0' && c<='9') || c=='_'; - } - // Return true if all values of a vector are computation values. bool is_comp_vector(const unsigned int arg) const { unsigned int siz = _cimg_mp_size(arg); - if (siz>8) return false; + if (siz>128) return false; const int *ptr = memtype.data(arg + 1); bool is_tmp = true; while (siz-->0) if (*(ptr++)) { is_tmp = false; break; } @@ -22433,36 +23271,44 @@ namespace cimg_library_suffixed { // Check if a memory slot is a positive integer constant scalar value. // 'mode' can be: // { 0=constant | 1=integer constant | 2=positive integer constant | 3=strictly-positive integer constant } - void check_constant(const unsigned int arg, const unsigned int n_arg, - const unsigned int mode, - char *const ss, char *const se, const char saved_char) { + void check_const_scalar(const unsigned int arg, const unsigned int n_arg, + const unsigned int mode, + char *const ss, char *const se, const char saved_char) { _cimg_mp_check_type(arg,n_arg,1,0); - if (!(_cimg_mp_is_constant(arg) && - (!mode || (double)(int)mem[arg]==mem[arg]) && + if (!_cimg_mp_is_const_scalar(arg)) { + const char *const s_arg = s_argth(n_arg); + char *s0; _cimg_mp_strerr; + throw CImgArgumentException("[" cimg_appname "_math_parser] " + "CImg<%s>::%s: %s%s %s%s (of type '%s') is not a constant, " + "in expression '%s'.", + pixel_type(),_cimg_mp_calling_function,s_op,*s_op?":":"", + s_arg,*s_arg?" argument":" Argument",s_type(arg)._data,s0); + } + const double val = mem[arg]; + + if (!((!mode || (double)(int)mem[arg]==mem[arg]) && (mode<2 || mem[arg]>=(mode==3)))) { const char *const s_arg = s_argth(n_arg); char *s0; _cimg_mp_strerr; throw CImgArgumentException("[" cimg_appname "_math_parser] " - "CImg<%s>::%s: %s%s %s%s (of type '%s') is not a%s constant, " - "in expression '%s%s%s'.", + "CImg<%s>::%s: %s%s %s%s (of type '%s' and value %g) is not a%s constant, " + "in expression '%s'.", pixel_type(),_cimg_mp_calling_function,s_op,*s_op?":":"", - s_arg,*s_arg?" argument":" Argument",s_type(arg)._data, + s_arg,*s_arg?" argument":" Argument",s_type(arg)._data,val, !mode?"":mode==1?"n integer": - mode==2?" positive integer":" strictly positive integer", - s0>expr._data?"...":"",s0,se<&expr.back()?"...":""); + mode==2?" positive integer":" strictly positive integer",s0); } } // Check if an image index is a constant value. - void check_constant_index(const unsigned int arg, - char *const ss, char *const se, const char saved_char) { - if (arg!=~0U && !_cimg_mp_is_constant(arg)) { + void check_const_index(const unsigned int arg, + char *const ss, char *const se, const char saved_char) { + if (arg!=~0U && !_cimg_mp_is_const_scalar(arg)) { char *s0; _cimg_mp_strerr; throw CImgArgumentException("[" cimg_appname "_math_parser] " "CImg<%s>::%s: %s%s Specified image index is not a constant, " - "in expression '%s%s%s'.", - pixel_type(),_cimg_mp_calling_function,s_op,*s_op?":":"", - s0>expr._data?"...":"",s0,se<&expr.back()?"...":""); + "in expression '%s'.", + pixel_type(),_cimg_mp_calling_function,s_op,*s_op?":":"",s0); } } @@ -22480,11 +23326,10 @@ namespace cimg_library_suffixed { char *s0; _cimg_mp_strerr; throw CImgArgumentException("[" cimg_appname "_math_parser] " "CImg<%s>::%s: %s%s %s%s (of type '%s') " - "cannot be considered as a square matrix, in expression '%s%s%s'.", + "cannot be considered as a square matrix, in expression '%s'.", pixel_type(),_cimg_mp_calling_function,s_op,*s_op?":":"", s_arg,*s_op=='F'?(*s_arg?" argument":" Argument"):(*s_arg?" operand":" Operand"), - s_type(arg)._data, - s0>expr._data?"...":"",s0,se<&expr.back()?"...":""); + s_type(arg)._data,s0); } } @@ -22517,29 +23362,32 @@ namespace cimg_library_suffixed { char *s0; _cimg_mp_strerr; throw CImgArgumentException("[" cimg_appname "_math_parser] " "CImg<%s>::%s: %s%s %s%s has invalid type '%s' (should be %s), " - "in expression '%s%s%s'.", + "in expression '%s'.", pixel_type(),_cimg_mp_calling_function,s_op,*s_op?":":"", s_arg,*s_op=='F'?(*s_arg?" argument":" Argument"):(*s_arg?" operand":" Operand"), - s_type(arg)._data,sb_type._data, - s0>expr._data?"...":"",s0,se<&expr.back()?"...":""); + s_type(arg)._data,sb_type._data,s0); } } - // Check that listin or listout are not empty. - void check_list(const bool is_out, - char *const ss, char *const se, const char saved_char) { - if ((!is_out && !listin) || (is_out && !listout)) { + // Check that imglist are not empty. + void check_list(char *const ss, char *const se, const char saved_char) { + if (!imglist) { char *s0; _cimg_mp_strerr; throw CImgArgumentException("[" cimg_appname "_math_parser] " - "CImg<%s>::%s: %s%s Invalid call with an empty image list, " - "in expression '%s%s%s'.", - pixel_type(),_cimg_mp_calling_function,s_op,*s_op?":":"", - s0>expr._data?"...":"",s0,se<&expr.back()?"...":""); + "CImg<%s>::%s: %s%s Image list cannot be empty, for expression '%s'.", + pixel_type(),_cimg_mp_calling_function,s_op,*s_op?":":"",s0); } } + static void mp_check_list(_cimg_math_parser& mp, const char *const funcname) { + if (!mp.imglist) + throw CImgArgumentException("[" cimg_appname "_math_parser] " + "CImg<%s>: Function '%s()': Images list cannot be empty.", + pixel_type(),funcname); + } + // Insert constant value in memory. - unsigned int constant(const double val) { + unsigned int const_scalar(const double val) { // Search for built-in constant. if (cimg::type::is_nan(val)) return _cimg_mp_slot_nan; @@ -22637,8 +23485,8 @@ namespace cimg_library_suffixed { return pos; } - // Set variable status to all values of a vector. - void set_variable_vector(const unsigned int arg) { + // Set reserved status to all values of a vector. + void set_reserved_vector(const unsigned int arg) { unsigned int siz = _cimg_mp_size(arg); int *ptr = memtype.data(arg + 1); while (siz-->0) *(ptr++) = -1; @@ -22647,12 +23495,14 @@ namespace cimg_library_suffixed { unsigned int scalar0(const mp_func op) { const unsigned int pos = scalar(); CImg::vector((ulongT)op,pos).move_to(code); + return_new_comp = true; return pos; } unsigned int scalar1(const mp_func op, const unsigned int arg1) { const unsigned int pos = - arg1!=~0U && arg1>_cimg_mp_slot_c && _cimg_mp_is_comp(arg1) && op!=mp_copy?arg1:scalar(); + arg1!=~0U && arg1>_cimg_mp_slot_c && _cimg_mp_is_comp(arg1) && op!=mp_copy?arg1: + ((return_new_comp = true), scalar()); CImg::vector((ulongT)op,pos,arg1).move_to(code); return pos; } @@ -22660,7 +23510,8 @@ namespace cimg_library_suffixed { unsigned int scalar2(const mp_func op, const unsigned int arg1, const unsigned int arg2) { const unsigned int pos = arg1!=~0U && arg1>_cimg_mp_slot_c && _cimg_mp_is_comp(arg1)?arg1: - arg2!=~0U && arg2>_cimg_mp_slot_c && _cimg_mp_is_comp(arg2)?arg2:scalar(); + arg2!=~0U && arg2>_cimg_mp_slot_c && _cimg_mp_is_comp(arg2)?arg2: + ((return_new_comp = true), scalar()); CImg::vector((ulongT)op,pos,arg1,arg2).move_to(code); return pos; } @@ -22670,7 +23521,8 @@ namespace cimg_library_suffixed { const unsigned int pos = arg1!=~0U && arg1>_cimg_mp_slot_c && _cimg_mp_is_comp(arg1)?arg1: arg2!=~0U && arg2>_cimg_mp_slot_c && _cimg_mp_is_comp(arg2)?arg2: - arg3!=~0U && arg3>_cimg_mp_slot_c && _cimg_mp_is_comp(arg3)?arg3:scalar(); + arg3!=~0U && arg3>_cimg_mp_slot_c && _cimg_mp_is_comp(arg3)?arg3: + ((return_new_comp = true), scalar()); CImg::vector((ulongT)op,pos,arg1,arg2,arg3).move_to(code); return pos; } @@ -22682,7 +23534,8 @@ namespace cimg_library_suffixed { arg1!=~0U && arg1>_cimg_mp_slot_c && _cimg_mp_is_comp(arg1)?arg1: arg2!=~0U && arg2>_cimg_mp_slot_c && _cimg_mp_is_comp(arg2)?arg2: arg3!=~0U && arg3>_cimg_mp_slot_c && _cimg_mp_is_comp(arg3)?arg3: - arg4!=~0U && arg4>_cimg_mp_slot_c && _cimg_mp_is_comp(arg4)?arg4:scalar(); + arg4!=~0U && arg4>_cimg_mp_slot_c && _cimg_mp_is_comp(arg4)?arg4: + ((return_new_comp = true), scalar()); CImg::vector((ulongT)op,pos,arg1,arg2,arg3,arg4).move_to(code); return pos; } @@ -22695,7 +23548,8 @@ namespace cimg_library_suffixed { arg2!=~0U && arg2>_cimg_mp_slot_c && _cimg_mp_is_comp(arg2)?arg2: arg3!=~0U && arg3>_cimg_mp_slot_c && _cimg_mp_is_comp(arg3)?arg3: arg4!=~0U && arg4>_cimg_mp_slot_c && _cimg_mp_is_comp(arg4)?arg4: - arg5!=~0U && arg5>_cimg_mp_slot_c && _cimg_mp_is_comp(arg5)?arg5:scalar(); + arg5!=~0U && arg5>_cimg_mp_slot_c && _cimg_mp_is_comp(arg5)?arg5: + ((return_new_comp = true), scalar()); CImg::vector((ulongT)op,pos,arg1,arg2,arg3,arg4,arg5).move_to(code); return pos; } @@ -22709,7 +23563,8 @@ namespace cimg_library_suffixed { arg3!=~0U && arg3>_cimg_mp_slot_c && _cimg_mp_is_comp(arg3)?arg3: arg4!=~0U && arg4>_cimg_mp_slot_c && _cimg_mp_is_comp(arg4)?arg4: arg5!=~0U && arg5>_cimg_mp_slot_c && _cimg_mp_is_comp(arg5)?arg5: - arg6!=~0U && arg6>_cimg_mp_slot_c && _cimg_mp_is_comp(arg6)?arg6:scalar(); + arg6!=~0U && arg6>_cimg_mp_slot_c && _cimg_mp_is_comp(arg6)?arg6: + ((return_new_comp = true), scalar()); CImg::vector((ulongT)op,pos,arg1,arg2,arg3,arg4,arg5,arg6).move_to(code); return pos; } @@ -22725,7 +23580,8 @@ namespace cimg_library_suffixed { arg4!=~0U && arg4>_cimg_mp_slot_c && _cimg_mp_is_comp(arg4)?arg4: arg5!=~0U && arg5>_cimg_mp_slot_c && _cimg_mp_is_comp(arg5)?arg5: arg6!=~0U && arg6>_cimg_mp_slot_c && _cimg_mp_is_comp(arg6)?arg6: - arg7!=~0U && arg7>_cimg_mp_slot_c && _cimg_mp_is_comp(arg7)?arg7:scalar(); + arg7!=~0U && arg7>_cimg_mp_slot_c && _cimg_mp_is_comp(arg7)?arg7: + ((return_new_comp = true), scalar()); CImg::vector((ulongT)op,pos,arg1,arg2,arg3,arg4,arg5,arg6,arg7).move_to(code); return pos; } @@ -22753,8 +23609,9 @@ namespace cimg_library_suffixed { unsigned int vector1_v(const mp_func op, const unsigned int arg1) { const unsigned int siz = _cimg_mp_size(arg1), - pos = is_comp_vector(arg1)?arg1:vector(siz); - if (siz>24) CImg::vector((ulongT)mp_vector_map_v,pos,siz,(ulongT)op,arg1).move_to(code); + pos = is_comp_vector(arg1)?arg1: + ((return_new_comp = true), vector(siz)); + if (siz>24) CImg::vector((ulongT)mp_vector_map_v,pos,1,siz,(ulongT)op,arg1).move_to(code); else { code.insert(siz); for (unsigned int k = 1; k<=siz; ++k) @@ -22766,8 +23623,9 @@ namespace cimg_library_suffixed { unsigned int vector2_vv(const mp_func op, const unsigned int arg1, const unsigned int arg2) { const unsigned int siz = _cimg_mp_size(arg1), - pos = is_comp_vector(arg1)?arg1:is_comp_vector(arg2)?arg2:vector(siz); - if (siz>24) CImg::vector((ulongT)mp_vector_map_vv,pos,siz,(ulongT)op,arg1,arg2).move_to(code); + pos = is_comp_vector(arg1)?arg1:is_comp_vector(arg2)?arg2: + ((return_new_comp = true), vector(siz)); + if (siz>24) CImg::vector((ulongT)mp_vector_map_vv,pos,2,siz,(ulongT)op,arg1,arg2).move_to(code); else { code.insert(siz); for (unsigned int k = 1; k<=siz; ++k) @@ -22779,8 +23637,9 @@ namespace cimg_library_suffixed { unsigned int vector2_vs(const mp_func op, const unsigned int arg1, const unsigned int arg2) { const unsigned int siz = _cimg_mp_size(arg1), - pos = is_comp_vector(arg1)?arg1:vector(siz); - if (siz>24) CImg::vector((ulongT)mp_vector_map_vs,pos,siz,(ulongT)op,arg1,arg2).move_to(code); + pos = is_comp_vector(arg1)?arg1: + ((return_new_comp = true), vector(siz)); + if (siz>24) CImg::vector((ulongT)mp_vector_map_v,pos,2,siz,(ulongT)op,arg1,arg2).move_to(code); else { code.insert(siz); for (unsigned int k = 1; k<=siz; ++k) @@ -22792,8 +23651,9 @@ namespace cimg_library_suffixed { unsigned int vector2_sv(const mp_func op, const unsigned int arg1, const unsigned int arg2) { const unsigned int siz = _cimg_mp_size(arg2), - pos = is_comp_vector(arg2)?arg2:vector(siz); - if (siz>24) CImg::vector((ulongT)mp_vector_map_sv,pos,siz,(ulongT)op,arg1,arg2).move_to(code); + pos = is_comp_vector(arg2)?arg2: + ((return_new_comp = true), vector(siz)); + if (siz>24) CImg::vector((ulongT)mp_vector_map_sv,pos,2,siz,(ulongT)op,arg1,arg2).move_to(code); else { code.insert(siz); for (unsigned int k = 1; k<=siz; ++k) @@ -22806,8 +23666,9 @@ namespace cimg_library_suffixed { const unsigned int arg3) { const unsigned int siz = _cimg_mp_size(arg1), - pos = is_comp_vector(arg1)?arg1:vector(siz); - if (siz>24) CImg::vector((ulongT)mp_vector_map_vss,pos,siz,(ulongT)op,arg1,arg2,arg3).move_to(code); + pos = is_comp_vector(arg1)?arg1: + ((return_new_comp = true), vector(siz)); + if (siz>24) CImg::vector((ulongT)mp_vector_map_v,pos,3,siz,(ulongT)op,arg1,arg2,arg3).move_to(code); else { code.insert(siz); for (unsigned int k = 1; k<=siz; ++k) @@ -22816,6 +23677,57 @@ namespace cimg_library_suffixed { return pos; } + unsigned int vector4_vvss(const mp_func op, const unsigned int arg1, const unsigned int arg2, + const unsigned int arg3, const unsigned int arg4) { + const unsigned int + siz = _cimg_mp_size(arg1), + pos = is_comp_vector(arg1)?arg1:is_comp_vector(arg2)?arg2: + ((return_new_comp = true), vector(siz)); + if (siz>24) + CImg::vector((ulongT)mp_vector_map_vv,pos,4,siz,(ulongT)op,arg1,arg2,arg3,arg4).move_to(code); + else { + code.insert(siz); + for (unsigned int k = 1; k<=siz; ++k) + CImg::vector((ulongT)op,pos + k,arg1 + k,arg2 + k,arg3,arg4). + move_to(code[code._width - 1 - siz + k]); + } + return pos; + } + + unsigned int vector4_vsss(const mp_func op, const unsigned int arg1, const unsigned int arg2, + const unsigned int arg3, const unsigned int arg4) { + const unsigned int + siz = _cimg_mp_size(arg1), + pos = is_comp_vector(arg1)?arg1: + ((return_new_comp = true), vector(siz)); + if (siz>24) + CImg::vector((ulongT)mp_vector_map_v,pos,4,siz,(ulongT)op,arg1,arg2,arg3,arg4).move_to(code); + else { + code.insert(siz); + for (unsigned int k = 1; k<=siz; ++k) + CImg::vector((ulongT)op,pos + k,arg1 + k,arg2,arg3,arg4). + move_to(code[code._width - 1 - siz + k]); + } + return pos; + } + + unsigned int vector4_svss(const mp_func op, const unsigned int arg1, const unsigned int arg2, + const unsigned int arg3, const unsigned int arg4) { + const unsigned int + siz = _cimg_mp_size(arg2), + pos = is_comp_vector(arg2)?arg2: + ((return_new_comp = true), vector(siz)); + if (siz>24) + CImg::vector((ulongT)mp_vector_map_sv,pos,4,siz,(ulongT)op,arg1,arg2,arg3,arg4).move_to(code); + else { + code.insert(siz); + for (unsigned int k = 1; k<=siz; ++k) + CImg::vector((ulongT)op,pos + k,arg1,arg2 + k,arg3,arg4). + move_to(code[code._width - 1 - siz + k]); + } + return pos; + } + // Evaluation functions, known by the parser. // Defining these functions 'static' ensures that sizeof(mp_func)==sizeof(ulongT), // so we can store pointers to them directly in the opcode vectors. @@ -23203,6 +24115,10 @@ namespace cimg_library_suffixed { return _mp_correlate(mp,true); } + static double mp_copy(_cimg_math_parser& mp) { + return _mp_arg(2); + } + static double mp_correlate(_cimg_math_parser &mp) { return _mp_correlate(mp,false); } @@ -23220,18 +24136,20 @@ namespace cimg_library_suffixed { dM = (unsigned int)mp.opcode[10], sM = (unsigned int)mp.opcode[11], boundary_conditions = (unsigned int)_mp_arg(12), - channel_mode = (unsigned int)mp.opcode[14], - xcenter = (unsigned int)_mp_arg(15), - ycenter = (unsigned int)_mp_arg(16), - zcenter = (unsigned int)_mp_arg(17), - xstart = (unsigned int)mp.opcode[18], - ystart = (unsigned int)mp.opcode[19], - zstart = (unsigned int)mp.opcode[20], - xend = (unsigned int)mp.opcode[21], - yend = (unsigned int)mp.opcode[22], - zend = (unsigned int)mp.opcode[23]; + channel_mode = (unsigned int)mp.opcode[14]; const bool - is_normalized = (bool)_mp_arg(13); + is_normalized = (bool)_mp_arg(13), + interpolation_type = (bool)_mp_arg(30); + const int + xcenter = mp.opcode[15]!=~0U?(int)_mp_arg(15):(int)(~0U>>1), + ycenter = mp.opcode[16]!=~0U?(int)_mp_arg(16):(int)(~0U>>1), + zcenter = mp.opcode[17]!=~0U?(int)_mp_arg(17):(int)(~0U>>1), + xstart = (int)mp.opcode[18], + ystart = (int)mp.opcode[19], + zstart = (int)mp.opcode[20], + xend = (int)mp.opcode[21], + yend = (int)mp.opcode[22], + zend = (int)mp.opcode[23]; const float xstride = (float)_mp_arg(24), ystride = (float)_mp_arg(25), @@ -23247,7 +24165,8 @@ namespace cimg_library_suffixed { xstart,ystart,zstart, xend,yend,zend, xstride,ystride,zstride, - xdilation,ydilation,zdilation); + xdilation,ydilation,zdilation, + interpolation_type); else res = CImg(ptrA,wA,hA,dA,sA,true). get_correlate(CImg(ptrM,wM,hM,dM,sM,true), boundary_conditions,is_normalized,channel_mode, @@ -23255,7 +24174,8 @@ namespace cimg_library_suffixed { xstart,ystart,zstart, xend,yend,zend, xstride,ystride,zstride, - xdilation,ydilation,zdilation); + xdilation,ydilation,zdilation, + interpolation_type); CImg(ptrd,res._width,res._height,res._depth,res._spectrum,true) = res; return cimg::type::nan(); } @@ -23268,6 +24188,23 @@ namespace cimg_library_suffixed { return std::cosh(_mp_arg(2)); } + static double mp_cov(_cimg_math_parser& mp) { + const unsigned int + _siz = (unsigned int)mp.opcode[4], + siz = std::max(_siz,1U), + off = _siz?1:0, + sizm1 = siz>1?siz - 1:1; + const CImg + A(&_mp_arg(2) + off,1,siz,1,1,true), + B(&_mp_arg(3) + off,1,siz,1,1,true); + const double + avgA = (unsigned int)mp.opcode[5]==~0U?A.mean():_mp_arg(5), + avgB = (unsigned int)mp.opcode[6]==~0U?B.mean():_mp_arg(6); + double res = 0; + cimg_forY(A,k) res+=(A[k] - avgA)*(B[k] - avgB); + return res/sizm1; + } + static double mp_critical(_cimg_math_parser& mp) { const ulongT g_target = mp.opcode[1]; cimg_pragma_openmp(critical(mp_critical)) @@ -23283,7 +24220,7 @@ namespace cimg_library_suffixed { return mp.mem[g_target]; } - static double mp_crop(_cimg_math_parser& mp) { + static double mp_image_crop(_cimg_math_parser& mp) { double *ptrd = &_mp_arg(1) + 1; const int x = (int)_mp_arg(3), y = (int)_mp_arg(4), z = (int)_mp_arg(5), c = (int)_mp_arg(6); const unsigned int @@ -23293,8 +24230,8 @@ namespace cimg_library_suffixed { dc = (unsigned int)mp.opcode[10]; const unsigned int boundary_conditions = (unsigned int)_mp_arg(11); unsigned int ind = (unsigned int)mp.opcode[2]; - if (ind!=~0U) ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.listin.width()); - const CImg &img = ind==~0U?mp.imgin:mp.listin[ind]; + if (ind!=~0U) ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()); + const CImg &img = ind==~0U?mp.imgin:mp.imglist[ind]; if (!img) std::memset(ptrd,0,dx*dy*dz*dc*sizeof(double)); else CImg(ptrd,dx,dy,dz,dc,true) = img.get_crop(x,y,z,c, x + dx - 1,y + dy - 1, @@ -23317,6 +24254,149 @@ namespace cimg_library_suffixed { return valcmax?cmax:val; } + static double mp_da_back_or_pop(_cimg_math_parser& mp) { + const bool is_pop = (bool)mp.opcode[4]; + const char *const s_op = is_pop?"da_pop":"da_back"; + mp_check_list(mp,s_op); + const unsigned int + dim = (unsigned int)mp.opcode[2], + ind = (unsigned int)cimg::mod((int)_mp_arg(3),mp.imglist.width()); + double *const ptrd = &_mp_arg(1) + (dim>1?1:0); + CImg &img = mp.imglist[ind]; + int siz = img?(int)img[img._height - 1]:0; + if (img && (img._width!=1 || img._depth!=1 || siz<0 || siz>img.height() - 1)) + throw CImgArgumentException("[" cimg_appname "_math_parser] CImg<%s>: Function '%s()': " + "Specified image #%u of size (%d,%d,%d,%d) cannot be used as dynamic array%s.", + mp.imgout.pixel_type(),s_op,ind, + img.width(),img.height(),img.depth(),img.spectrum(), + img._width==1 && img._depth==1?"":" (contains invalid element counter)"); + if (!siz) + throw CImgArgumentException("[" cimg_appname "_math_parser] CImg<%s>: Function '%s()': " + "Specified dynamic array #%u contains no elements.", + mp.imgout.pixel_type(),s_op,ind); + + double ret = cimg::type::nan(); + if (dim<1) ret = img[siz - 1]; // Scalar element + else cimg_forC(img,c) ptrd[c] = img(0,siz - 1,0,c); // Vector element + if (is_pop) { // Remove element from array + --siz; + if (img.height()>32 && siz<2*img.height()/3) // Reduce size of dynamic array + img.resize(1,std::max(2*siz + 1,32),1,-100,0); + img[img._height - 1] = (T)siz; + } + return ret; + } + + static double mp_da_freeze(_cimg_math_parser& mp) { + const char *const s_op = "da_freeze"; + mp_check_list(mp,s_op); + const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()); + CImg &img = mp.imglist[ind]; + int siz = img?(int)img[img._height - 1]:0; + if (img && (img._width!=1 || img._depth!=1 || siz<0 || siz>img.height() - 1)) + throw CImgArgumentException("[" cimg_appname "_math_parser] CImg<%s>: Function '%s()': " + "Specified image #%u of size (%d,%d,%d,%d) cannot be used as dynamic array%s.", + mp.imgout.pixel_type(),s_op,ind, + img.width(),img.height(),img.depth(),img.spectrum(), + img._width==1 && img._depth==1?"":" (contains invalid element counter)"); + if (siz) img.resize(1,siz,1,-100,0,0); else img.assign(); + return cimg::type::nan(); + } + + static double mp_da_insert_or_push(_cimg_math_parser& mp) { + const char *const s_op = mp.opcode[3]==~0U?"da_push":"da_insert"; + mp_check_list(mp,s_op); + const unsigned int + dim = (unsigned int)mp.opcode[4], + _dim = std::max(1U,dim), + nb_elts = (unsigned int)mp.opcode[5] - 6, + ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()); + CImg &img = mp.imglist[ind]; + const int + siz = img?(int)img[img._height - 1]:0, + pos0 = mp.opcode[3]==~0U?siz:(int)_mp_arg(3), + pos = pos0<0?pos0 + siz:pos0; + + if (img && _dim!=img._spectrum) + throw CImgArgumentException("[" cimg_appname "_math_parser] CImg<%s>: Function '%s()': " + "Element to insert has invalid size %u (should be %u).", + mp.imgout.pixel_type(),s_op,_dim,img._spectrum); + if (img && (img._width!=1 || img._depth!=1 || siz<0 || siz>img.height() - 1)) + throw CImgArgumentException("[" cimg_appname "_math_parser] CImg<%s>: Function '%s()': " + "Specified image #%u of size (%d,%d,%d,%d) cannot be used as dynamic array%s.", + mp.imgout.pixel_type(),s_op,ind, + img.width(),img.height(),img.depth(),img.spectrum(), + img._width==1 && img._depth==1?"":" (contains invalid element counter)"); + if (pos<0 || pos>siz) + throw CImgArgumentException("[" cimg_appname "_math_parser] CImg<%s>: Function '%s()': " + "Invalid position %d (not in range -%d...%d).", + mp.imgout.pixel_type(),s_op,pos0,siz,siz); + + if (siz + nb_elts + 1>=img._height) // Increase size of dynamic array, if necessary + img.resize(1,2*siz + nb_elts + 1,1,_dim,0); + + if (pos!=siz) // Move existing data in dynamic array + cimg_forC(img,c) std::memmove(img.data(0,pos + nb_elts,0,c),img.data(0,pos,0,c),(siz - pos)*sizeof(T)); + + if (!dim) // Scalar or vector1() elements + for (unsigned int k = 0; k1 + for (unsigned int k = 0; k::nan(); + } + + static double mp_da_remove(_cimg_math_parser& mp) { + mp_check_list(mp,"da_remove"); + const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()); + CImg &img = mp.imglist[ind]; + int siz = img?(int)img[img._height - 1]:0; + if (img && (img._width!=1 || img._depth!=1 || siz<0 || siz>img.height() - 1)) + throw CImgArgumentException("[" cimg_appname "_math_parser] CImg<%s>: Function 'da_remove()': " + "Specified image #%u of size (%d,%d,%d,%d) cannot be used as dynamic array%s.", + mp.imgout.pixel_type(),ind, + img.width(),img.height(),img.depth(),img.spectrum(), + img._width==1 && img._depth==1?"":" (contains invalid element counter)"); + if (!siz) + throw CImgArgumentException("[" cimg_appname "_math_parser] CImg<%s>: Function 'da_remove()': " + "Dynamic array is empty.", + mp.imgout.pixel_type()); + int + start0 = mp.opcode[3]==~0U?siz - 1:_mp_arg(3), + end0 = mp.opcode[4]==~0U?start0:_mp_arg(4), + start = start0<0?start0 + siz:start0, + end = end0<0?end0 + siz:end0; + if (start<0 || start>=siz || end<0 || end>=siz || start>end) + throw CImgArgumentException("[" cimg_appname "_math_parser] CImg<%s>: Function 'da_remove()': " + "Invalid starting (%d) and ending (%d) positions " + "(not ordered, in range -%d...%d).", + mp.imgout.pixel_type(),start0,end0,siz,siz - 1); + if (end32 && siz<2*img.height()/3) // Reduce size of dynamic array + img.resize(1,std::max(2*siz + 1,32),1,-100,0); + img[img._height - 1] = (T)siz; + return cimg::type::nan(); + } + + static double mp_da_size(_cimg_math_parser& mp) { + mp_check_list(mp,"da_size"); + const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()); + CImg &img = mp.imglist[ind]; + const int siz = img?(int)img[img._height - 1]:0; + if (img && (img._width!=1 || img._depth!=1 || siz<0 || siz>img.height() - 1)) + throw CImgArgumentException("[" cimg_appname "_math_parser] CImg<%s>: Function 'da_size()': " + "Specified image #%u of size (%d,%d,%d,%d) cannot be used as dynamic array%s.", + mp.imgout.pixel_type(),ind, + img.width(),img.height(),img.depth(),img.spectrum(), + img._width==1 && img._depth==1?"":" (contains invalid element counter)"); + return siz; + } + static double mp_date(_cimg_math_parser& mp) { const unsigned int siz_out = (unsigned int)mp.opcode[2], @@ -23363,7 +24443,7 @@ namespace cimg_library_suffixed { { std::fprintf(cimg::output(), "\n[" cimg_appname "_math_parser] %p[thread #%u]:%*c" - "Start debugging expression '%s', code length %u -> mem[%u] (memsize: %u)", + "Start debugging '%s', code length: %u -> mem[%u] (memsize: %u)", (void*)&mp,n_thread,mp.debug_indent,' ', expr._data,(unsigned int)mp.opcode[3],(unsigned int)g_target,mp.mem._width); std::fflush(cimg::output()); @@ -23398,7 +24478,7 @@ namespace cimg_library_suffixed { mp.debug_indent-=3; std::fprintf(cimg::output(), "\n[" cimg_appname "_math_parser] %p[thread #%u]:%*c" - "End debugging expression '%s' -> mem[%u] = %.17g (memsize: %u)", + "End debugging '%s' -> mem[%u] = %.17g (memsize: %u)", (void*)&mp,n_thread,mp.debug_indent,' ', expr._data,(unsigned int)g_target,mp.mem[g_target],mp.mem._width); std::fflush(cimg::output()); @@ -23411,6 +24491,10 @@ namespace cimg_library_suffixed { return _mp_arg(2) - 1; } + static double mp_deg2rad(_cimg_math_parser& mp) { + return _mp_arg(2)*cimg::PI/180; + } + static double mp_det(_cimg_math_parser& mp) { const double *ptrs = &_mp_arg(2) + 1; const unsigned int k = (unsigned int)mp.opcode[3]; @@ -23506,47 +24590,9 @@ namespace cimg_library_suffixed { return mp.mem[mem_body]; } - static double mp_draw(_cimg_math_parser& mp) { - const int x = (int)_mp_arg(4), y = (int)_mp_arg(5), z = (int)_mp_arg(6), c = (int)_mp_arg(7); - unsigned int ind = (unsigned int)mp.opcode[3]; - if (ind!=~0U) ind = (unsigned int)cimg::mod((int)_mp_arg(3),mp.listin.width()); - CImg &img = ind==~0U?mp.imgout:mp.listout[ind]; - unsigned int - dx = (unsigned int)mp.opcode[8], - dy = (unsigned int)mp.opcode[9], - dz = (unsigned int)mp.opcode[10], - dc = (unsigned int)mp.opcode[11]; - dx = dx==~0U?img._width:(unsigned int)_mp_arg(8); - dy = dy==~0U?img._height:(unsigned int)_mp_arg(9); - dz = dz==~0U?img._depth:(unsigned int)_mp_arg(10); - dc = dc==~0U?img._spectrum:(unsigned int)_mp_arg(11); - - const ulongT sizS = mp.opcode[2]; - if (sizS<(ulongT)dx*dy*dz*dc) - throw CImgArgumentException("[" cimg_appname "_math_parser] CImg<%s>: Function 'draw()': " - "Sprite dimension (%lu values) and specified sprite geometry (%u,%u,%u,%u) " - "(%lu values) do not match.", - mp.imgin.pixel_type(),sizS,dx,dy,dz,dc,(ulongT)dx*dy*dz*dc); - CImg S(&_mp_arg(1) + 1,dx,dy,dz,dc,true); - const float opacity = (float)_mp_arg(12); - - if (img._data) { - if (mp.opcode[13]!=~0U) { // Opacity mask specified - const ulongT sizM = mp.opcode[14]; - if (sizM<(ulongT)dx*dy*dz) - throw CImgArgumentException("[" cimg_appname "_math_parser] CImg<%s>: Function 'draw()': " - "Mask dimension (%lu values) and specified sprite geometry (%u,%u,%u,%u) " - "(%lu values) do not match.", - mp.imgin.pixel_type(),sizS,dx,dy,dz,dc,(ulongT)dx*dy*dz*dc); - const CImg M(&_mp_arg(13) + 1,dx,dy,dz,(unsigned int)(sizM/(dx*dy*dz)),true); - img.draw_image(x,y,z,c,S,M,opacity,(float)_mp_arg(15)); - } else img.draw_image(x,y,z,c,S,opacity); - } - return cimg::type::nan(); - } - static double mp_echo(_cimg_math_parser& mp) { const unsigned int nb_args = (unsigned int)(mp.opcode[2] - 3)/2; + if (!nb_args) { std::fputc('\n',cimg::output()); return cimg::type::nan(); } // No arguments CImgList _str; CImg it; for (unsigned int n = 0; n &img = ind==~0U?mp.imgout:mp.listout[ind]; + if (ind!=~0U) { + if (!mp.imglist.width()) return cimg::type::nan(); + ind = (unsigned int)cimg::mod((int)_mp_arg(3),mp.imglist.width()); + } + CImg &img = ind==~0U?mp.imgout:mp.imglist[ind]; CImg color(img._spectrum,1,1,1,0); bool is_invalid_arguments = false, is_outlined = false; float r1 = 0, r2 = 0, angle = 0, opacity = 1; @@ -23591,7 +24641,7 @@ namespace cimg_library_suffixed { else { r2 = (float)_mp_arg(i++); if (i ss(sizs + 1); cimg_for_inX(ss,0,ss.width() - 1,i) ss[i] = (char)ptrs[i]; ss.back() = 0; - if (!sizd) return CImg(w,h,d,s,0).eval(ss,0,0,0,0,&mp.listin,&mp.listout); // Scalar result - CImg(++ptrd,w,h,d,s,true) = CImg(w,h,d,s,0).fill(ss,true,true,&mp.listin,&mp.listout); + if (!sizd) return CImg(w,h,d,s,0).eval(ss,0,0,0,0,&mp.imglist); // Scalar result + CImg(++ptrd,w,h,d,s,true) = CImg(w,h,d,s,0).fill(ss,true,true,&mp.imglist); return cimg::type::nan(); } @@ -23673,6 +24731,50 @@ namespace cimg_library_suffixed { return cimg::fibonacci((int)_mp_arg(2)); } + static double mp_fill(_cimg_math_parser& mp) { + unsigned int siz = (unsigned int)mp.opcode[2]; + double + *ptrd = &_mp_arg(1), + *const ptrc = mp.opcode[3]!=~0U?&_mp_arg(3):0, + *const ptrs = &_mp_arg(4); + if (siz) ++ptrd; else ++siz; // Fill vector-valued slot + const CImg + *const p_body = ++mp.p_code, + *const p_end = p_body + mp.opcode[5]; + const unsigned int _break_type = mp.break_type; + mp.break_type = 0; + + unsigned int it = 0; + if (ptrc) { // Version with loop variable (3 arguments) + while (it_data; + const ulongT target = mp.opcode[1]; + mp.mem[target] = _cimg_mp_defunc(mp); + } + if (mp.break_type==1) break; else if (mp.break_type==2) mp.break_type = 0; + else ptrd[it] = *ptrs; + ++it; + } + *ptrc = (double)it; + } else // Version without loop variable (2 arguments) + while (it_data; + const ulongT target = mp.opcode[1]; + mp.mem[target] = _cimg_mp_defunc(mp); + } + if (mp.break_type==1) break; else if (mp.break_type==2) mp.break_type = 0; + else ptrd[it] = *ptrs; + ++it; + } + + mp.break_type = _break_type; + mp.p_code = p_end - 1; + return *ptrd; + } + static double mp_find(_cimg_math_parser& mp) { const int _step = (int)_mp_arg(6), step = _step?_step:-1; const ulongT siz = (ulongT)mp.opcode[3]; @@ -23842,7 +24944,7 @@ namespace cimg_library_suffixed { unsigned int ind = (unsigned int)mp.opcode[2]; if (ind==~0U) std::memset(ptr,0,siz*sizeof(double)); else { - ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.listin.width()); + ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()); cimg_mp_func_name(ind,ptr,siz); } return cimg::type::nan(); @@ -23889,15 +24991,19 @@ namespace cimg_library_suffixed { static double mp_image_d(_cimg_math_parser& mp) { unsigned int ind = (unsigned int)mp.opcode[2]; - if (ind!=~0U) ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.listin.width()); - const CImg &img = ind==~0U?mp.imgout:mp.listout[ind]; + if (ind!=~0U) { + if (!mp.imglist.width()) return cimg::type::nan(); + ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()); + } + const CImg &img = ind==~0U?mp.imgout:mp.imglist[ind]; return (double)img.depth(); } static double mp_image_display(_cimg_math_parser& mp) { - const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.listout.width()); + mp_check_list(mp,"display"); + const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()); cimg::mutex(6); - CImg &img = mp.listout[ind]; + CImg &img = mp.imglist[ind]; CImg title(256); std::fputc('\n',cimg::output()); cimg_snprintf(title,title._width,"[ Image #%u ]",ind); @@ -23906,31 +25012,83 @@ namespace cimg_library_suffixed { return cimg::type::nan(); } + static double mp_image_draw(_cimg_math_parser& mp) { + const int x = (int)_mp_arg(4), y = (int)_mp_arg(5), z = (int)_mp_arg(6), c = (int)_mp_arg(7); + unsigned int ind = (unsigned int)mp.opcode[3]; + if (ind!=~0U) { + if (!mp.imglist.width()) return cimg::type::nan(); + ind = (unsigned int)cimg::mod((int)_mp_arg(3),mp.imglist.width()); + } + CImg &img = ind==~0U?mp.imgout:mp.imglist[ind]; + unsigned int + dx = (unsigned int)mp.opcode[8], + dy = (unsigned int)mp.opcode[9], + dz = (unsigned int)mp.opcode[10], + dc = (unsigned int)mp.opcode[11]; + dx = dx==~0U?img._width:(unsigned int)_mp_arg(8); + dy = dy==~0U?img._height:(unsigned int)_mp_arg(9); + dz = dz==~0U?img._depth:(unsigned int)_mp_arg(10); + dc = dc==~0U?img._spectrum:(unsigned int)_mp_arg(11); + + const ulongT sizS = mp.opcode[2]; + if (sizS<(ulongT)dx*dy*dz*dc) + throw CImgArgumentException("[" cimg_appname "_math_parser] CImg<%s>: Function 'draw()': " + "Sprite vector (%lu values) and its specified geometry (%u,%u,%u,%u) " + "(%lu values) do not match.", + mp.imgin.pixel_type(),sizS,dx,dy,dz,dc,(ulongT)dx*dy*dz*dc); + const CImg S(&_mp_arg(1) + 1,dx,dy,dz,dc,true); + const float opacity = (float)_mp_arg(12); + + if (img._data) { + if (mp.opcode[13]!=~0U) { // Opacity mask specified + const ulongT sizM = mp.opcode[14]; + if (sizM<(ulongT)dx*dy*dz) + throw CImgArgumentException("[" cimg_appname "_math_parser] CImg<%s>: Function 'draw()': " + "Mask vector (%lu values) and specified sprite geometry (%u,%u,%u,%u) " + "(%lu values) do not match.", + mp.imgin.pixel_type(),sizS,dx,dy,dz,dc,(ulongT)dx*dy*dz*dc); + const CImg M(&_mp_arg(13) + 1,dx,dy,dz,(unsigned int)(sizM/(dx*dy*dz)),true); + img.draw_image(x,y,z,c,S,M,opacity,(float)_mp_arg(15)); + } else img.draw_image(x,y,z,c,S,opacity); + } + return cimg::type::nan(); + } + static double mp_image_h(_cimg_math_parser& mp) { unsigned int ind = (unsigned int)mp.opcode[2]; - if (ind!=~0U) ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.listin.width()); - const CImg &img = ind==~0U?mp.imgout:mp.listout[ind]; + if (ind!=~0U) { + if (!mp.imglist.width()) return cimg::type::nan(); + ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()); + } + const CImg &img = ind==~0U?mp.imgout:mp.imglist[ind]; return (double)img.height(); } static double mp_image_median(_cimg_math_parser& mp) { unsigned int ind = (unsigned int)mp.opcode[2]; - if (ind!=~0U) ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.listin.width()); - const CImg &img = ind==~0U?mp.imgout:mp.listout[ind]; + if (ind!=~0U) { + if (!mp.imglist.width()) return cimg::type::nan(); + ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()); + } + const CImg &img = ind==~0U?mp.imgout:mp.imglist[ind]; return (double)img.median(); } static double mp_image_norm(_cimg_math_parser& mp) { unsigned int ind = (unsigned int)mp.opcode[2]; - if (ind!=~0U) ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.listin.width()); - const CImg &img = ind==~0U?mp.imgout:mp.listout[ind]; + if (ind!=~0U) { + if (!mp.imglist.width()) return cimg::type::nan(); + ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()); + } + const CImg &img = ind==~0U?mp.imgout:mp.imglist[ind]; return (double)img.magnitude(); } static double mp_image_print(_cimg_math_parser& mp) { - const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.listout.width()); + mp_check_list(mp,"print"); + const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()); cimg::mutex(6); - CImg &img = mp.listout[ind]; + CImg &img = mp.imglist[ind]; CImg title(256); std::fputc('\n',cimg::output()); cimg_snprintf(title,title._width,"[ Image #%u ]",ind); @@ -23940,9 +25098,10 @@ namespace cimg_library_suffixed { } static double mp_image_resize(_cimg_math_parser& mp) { - const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.listout.width()); + mp_check_list(mp,"resize"); + const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()); cimg::mutex(6); - CImg &img = mp.listout[ind]; + CImg &img = mp.imglist[ind]; const double _w = mp.opcode[3]==~0U?-100:_mp_arg(3), _h = mp.opcode[4]==~0U?-100:_mp_arg(4), @@ -23975,18 +25134,22 @@ namespace cimg_library_suffixed { static double mp_image_s(_cimg_math_parser& mp) { unsigned int ind = (unsigned int)mp.opcode[2]; - if (ind!=~0U) ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.listin.width()); - const CImg &img = ind==~0U?mp.imgout:mp.listout[ind]; + if (ind!=~0U) { + if (!mp.imglist.width()) return cimg::type::nan(); + ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()); + } + const CImg &img = ind==~0U?mp.imgout:mp.imglist[ind]; return (double)img.spectrum(); } static double mp_image_sort(_cimg_math_parser& mp) { + mp_check_list(mp,"sort"); const bool is_increasing = (bool)_mp_arg(3); const unsigned int - ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.listout.width()), + ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()), axis = (unsigned int)_mp_arg(4); cimg::mutex(6); - CImg &img = mp.listout[ind]; + CImg &img = mp.imglist[ind]; img.sort(is_increasing, axis==0 || axis=='x'?'x': axis==1 || axis=='y'?'y': @@ -23999,39 +25162,53 @@ namespace cimg_library_suffixed { static double mp_image_stats(_cimg_math_parser& mp) { double *ptrd = &_mp_arg(1) + 1; unsigned int ind = (unsigned int)mp.opcode[2]; - if (ind==~0U) CImg(ptrd,14,1,1,1,true) = mp.imgout.get_stats(); + if (ind==~0U) + CImg(ptrd,14,1,1,1,true) = mp.imgout.get_stats(); else { - ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.listin.width()); - CImg(ptrd,14,1,1,1,true) = mp.listout[ind].get_stats(); + if (!mp.imglist.width()) return cimg::type::nan(); + ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()); + CImg(ptrd,14,1,1,1,true) = mp.imglist[ind].get_stats(); } return cimg::type::nan(); } static double mp_image_w(_cimg_math_parser& mp) { unsigned int ind = (unsigned int)mp.opcode[2]; - if (ind!=~0U) ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.listin.width()); - const CImg &img = ind==~0U?mp.imgout:mp.listout[ind]; + if (ind!=~0U) { + if (!mp.imglist.width()) return cimg::type::nan(); + ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()); + } + const CImg &img = ind==~0U?mp.imgout:mp.imglist[ind]; return (double)img.width(); } static double mp_image_wh(_cimg_math_parser& mp) { unsigned int ind = (unsigned int)mp.opcode[2]; - if (ind!=~0U) ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.listin.width()); - const CImg &img = ind==~0U?mp.imgout:mp.listout[ind]; + if (ind!=~0U) { + if (!mp.imglist.width()) return cimg::type::nan(); + ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()); + } + const CImg &img = ind==~0U?mp.imgout:mp.imglist[ind]; return (double)img.width()*img.height(); } static double mp_image_whd(_cimg_math_parser& mp) { unsigned int ind = (unsigned int)mp.opcode[2]; - if (ind!=~0U) ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.listin.width()); - const CImg &img = ind==~0U?mp.imgout:mp.listout[ind]; + if (ind!=~0U) { + if (!mp.imglist.width()) return cimg::type::nan(); + ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()); + } + const CImg &img = ind==~0U?mp.imgout:mp.imglist[ind]; return (double)img.width()*img.height()*img.depth(); } static double mp_image_whds(_cimg_math_parser& mp) { unsigned int ind = (unsigned int)mp.opcode[2]; - if (ind!=~0U) ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.listin.width()); - const CImg &img = ind==~0U?mp.imgout:mp.listout[ind]; + if (ind!=~0U) { + if (!mp.imglist.width()) return cimg::type::nan(); + ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()); + } + const CImg &img = ind==~0U?mp.imgout:mp.imglist[ind]; return (double)img.width()*img.height()*img.depth()*img.spectrum(); } @@ -24111,8 +25288,9 @@ namespace cimg_library_suffixed { } static double mp_isdir(_cimg_math_parser& mp) { - const double *ptrs = &_mp_arg(2) + 1; - const ulongT siz = (ulongT)mp.opcode[3]; + const unsigned int siz = (unsigned int)mp.opcode[3]; + const double *const ptrs = &_mp_arg(2) + (siz?1:0); + if (!siz) { char str[2] = {}; *str = *ptrs; return (double)cimg::is_directory(str); } CImg ss(siz + 1); cimg_forX(ss,i) ss[i] = (char)ptrs[i]; ss.back() = 0; @@ -24120,11 +25298,24 @@ namespace cimg_library_suffixed { } static double mp_isin(_cimg_math_parser& mp) { - const unsigned int i_end = (unsigned int)mp.opcode[2]; - const double val = _mp_arg(3); - for (unsigned int i = 4; i ref(&_mp_arg(3) + 1,siz_ref,1,1,1,true); + for (unsigned int i = 5; i(&_mp_arg(i) + 1,siz,1,1,1,true)==ref) { res = true; break; } + } + } else { // Reference value is a scalar + const double ref = _mp_arg(3); + for (unsigned i = 5; i ss(siz + 1); cimg_forX(ss,i) ss[i] = (char)ptrs[i]; ss.back() = 0; @@ -24148,6 +25340,18 @@ namespace cimg_library_suffixed { return (double)cimg::type::is_nan(_mp_arg(2)); } + static double mp_isvarname(_cimg_math_parser& mp) { + const unsigned int siz = (unsigned int)mp.opcode[3]; + const double *ptrs = &_mp_arg(2) + (siz?1:0); + if (!siz) { + const char c = (char)*ptrs; + return (c>='a' && c<='z') || (c>='A' && c<='Z') || c=='_'; + } + if (*ptrs>='0' && *ptrs<='9') return 0; + for (unsigned int k = 0; k &img = mp.listin[indi]; + indi = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()); + const CImg &img = mp.imglist[indi]; const int _step = (int)_mp_arg(5), step = _step?_step:-1; const ulongT siz = (ulongT)img.size(); longT ind = (longT)(mp.opcode[4]!=_cimg_mp_slot_nan?_mp_arg(4):step>0?0:siz - 1); @@ -24392,9 +25596,9 @@ namespace cimg_library_suffixed { static double mp_list_find_seq(_cimg_math_parser& mp) { const unsigned int - indi = (unsigned int)cimg::mod((int)_mp_arg(2),mp.listin.width()); - const CImg &img = mp.listin[indi]; - const int _step = (bool)_mp_arg(6), step = _step?_step:-1; + indi = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()); + const CImg &img = mp.imglist[indi]; + const int _step = (int)_mp_arg(6), step = _step?_step:-1; const ulongT siz1 = (ulongT)img.size(), siz2 = (ulongT)mp.opcode[4]; @@ -24434,15 +25638,15 @@ namespace cimg_library_suffixed { } static double mp_list_height(_cimg_math_parser& mp) { - const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.listin.width()); - return (double)mp.listin[ind]._height; + const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()); + return (double)mp.imglist[ind]._height; } static double mp_list_ioff(_cimg_math_parser& mp) { const unsigned int - ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.listin.width()), + ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()), boundary_conditions = (unsigned int)_mp_arg(4); - const CImg &img = mp.listin[ind]; + const CImg &img = mp.imglist[ind]; const longT off = (longT)_mp_arg(3), whds = (longT)img.size(); @@ -24463,16 +25667,16 @@ namespace cimg_library_suffixed { } static double mp_list_is_shared(_cimg_math_parser& mp) { - const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.listin.width()); - return (double)mp.listin[ind]._is_shared; + const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()); + return (double)mp.imglist[ind]._is_shared; } static double mp_list_ixyzc(_cimg_math_parser& mp) { const unsigned int - ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.listin.width()), + ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()), interpolation = (unsigned int)_mp_arg(7), boundary_conditions = (unsigned int)_mp_arg(8); - const CImg &img = mp.listin[ind]; + const CImg &img = mp.imglist[ind]; const double x = _mp_arg(3), y = _mp_arg(4), z = _mp_arg(5), c = _mp_arg(6); @@ -24548,12 +25752,12 @@ namespace cimg_library_suffixed { static double mp_list_joff(_cimg_math_parser& mp) { const unsigned int - ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.listin.width()), + ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()), boundary_conditions = (unsigned int)_mp_arg(4); const int ox = (int)mp.mem[_cimg_mp_slot_x], oy = (int)mp.mem[_cimg_mp_slot_y], oz = (int)mp.mem[_cimg_mp_slot_z], oc = (int)mp.mem[_cimg_mp_slot_c]; - const CImg &img = mp.listin[ind]; + const CImg &img = mp.imglist[ind]; const longT off = img.offset(ox,oy,oz,oc) + (longT)_mp_arg(3), whds = (longT)img.size(); @@ -24575,10 +25779,10 @@ namespace cimg_library_suffixed { static double mp_list_jxyzc(_cimg_math_parser& mp) { const unsigned int - ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.listin.width()), + ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()), interpolation = (unsigned int)_mp_arg(7), boundary_conditions = (unsigned int)_mp_arg(8); - const CImg &img = mp.listin[ind]; + const CImg &img = mp.imglist[ind]; const double ox = mp.mem[_cimg_mp_slot_x], oy = mp.mem[_cimg_mp_slot_y], oz = mp.mem[_cimg_mp_slot_z], oc = mp.mem[_cimg_mp_slot_c], @@ -24655,26 +25859,27 @@ namespace cimg_library_suffixed { } static double mp_list_l(_cimg_math_parser& mp) { - return (double)mp.listout.width(); + return (double)mp.imglist.width(); } static double mp_list_median(_cimg_math_parser& mp) { - const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.listin.width()); - if (!mp.list_median) mp.list_median.assign(mp.listin._width); - if (!mp.list_median[ind]) CImg::vector(mp.listin[ind].median()).move_to(mp.list_median[ind]); + const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()); + if (!mp.list_median) mp.list_median.assign(mp.imglist._width); + if (!mp.list_median[ind]) CImg::vector(mp.imglist[ind].median()).move_to(mp.list_median[ind]); return *mp.list_median[ind]; } static double mp_list_norm(_cimg_math_parser& mp) { - const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.listin.width()); - if (!mp.list_norm) mp.list_norm.assign(mp.listin._width); - if (!mp.list_norm[ind]) CImg::vector(mp.listin[ind].magnitude()).move_to(mp.list_norm[ind]); + const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()); + if (!mp.list_norm) mp.list_norm.assign(mp.imglist._width); + if (!mp.list_norm[ind]) CImg::vector(mp.imglist[ind].magnitude()).move_to(mp.list_norm[ind]); return *mp.list_norm[ind]; } static double mp_list_set_ioff(_cimg_math_parser& mp) { - const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.listin.width()); - CImg &img = mp.listout[ind]; + if (!mp.imglist.width()) return cimg::type::nan(); + const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()); + CImg &img = mp.imglist[ind]; const longT off = (longT)_mp_arg(3), whds = (longT)img.size(); @@ -24684,8 +25889,9 @@ namespace cimg_library_suffixed { } static double mp_list_set_ixyzc(_cimg_math_parser& mp) { - const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.listin.width()); - CImg &img = mp.listout[ind]; + if (!mp.imglist.width()) return cimg::type::nan(); + const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()); + CImg &img = mp.imglist[ind]; const int x = (int)_mp_arg(3), y = (int)_mp_arg(4), z = (int)_mp_arg(5), c = (int)_mp_arg(6); @@ -24697,8 +25903,9 @@ namespace cimg_library_suffixed { } static double mp_list_set_joff(_cimg_math_parser& mp) { - const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.listin.width()); - CImg &img = mp.listout[ind]; + if (!mp.imglist.width()) return cimg::type::nan(); + const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()); + CImg &img = mp.imglist[ind]; const int ox = (int)mp.mem[_cimg_mp_slot_x], oy = (int)mp.mem[_cimg_mp_slot_y], oz = (int)mp.mem[_cimg_mp_slot_z], oc = (int)mp.mem[_cimg_mp_slot_c]; @@ -24711,8 +25918,9 @@ namespace cimg_library_suffixed { } static double mp_list_set_jxyzc(_cimg_math_parser& mp) { - const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.listin.width()); - CImg &img = mp.listout[ind]; + if (!mp.imglist.width()) return cimg::type::nan(); + const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()); + CImg &img = mp.imglist[ind]; const double ox = mp.mem[_cimg_mp_slot_x], oy = mp.mem[_cimg_mp_slot_y], oz = mp.mem[_cimg_mp_slot_z], oc = mp.mem[_cimg_mp_slot_c]; @@ -24727,8 +25935,9 @@ namespace cimg_library_suffixed { } static double mp_list_set_Ioff_s(_cimg_math_parser& mp) { - const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.listin.width()); - CImg &img = mp.listout[ind]; + if (!mp.imglist.width()) return cimg::type::nan(); + const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()); + CImg &img = mp.imglist[ind]; const longT off = (longT)_mp_arg(3), whd = (longT)img.width()*img.height()*img.depth(); @@ -24741,8 +25950,9 @@ namespace cimg_library_suffixed { } static double mp_list_set_Ioff_v(_cimg_math_parser& mp) { - const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.listin.width()); - CImg &img = mp.listout[ind]; + if (!mp.imglist.width()) return cimg::type::nan(); + const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()); + CImg &img = mp.imglist[ind]; const longT off = (longT)_mp_arg(3), whd = (longT)img.width()*img.height()*img.depth(); @@ -24756,8 +25966,9 @@ namespace cimg_library_suffixed { } static double mp_list_set_Ixyz_s(_cimg_math_parser& mp) { - const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.listin.width()); - CImg &img = mp.listout[ind]; + if (!mp.imglist.width()) return cimg::type::nan(); + const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()); + CImg &img = mp.imglist[ind]; const int x = (int)_mp_arg(3), y = (int)_mp_arg(4), @@ -24772,8 +25983,9 @@ namespace cimg_library_suffixed { } static double mp_list_set_Ixyz_v(_cimg_math_parser& mp) { - const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.listin.width()); - CImg &img = mp.listout[ind]; + if (!mp.imglist.width()) return cimg::type::nan(); + const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()); + CImg &img = mp.imglist[ind]; const int x = (int)_mp_arg(3), y = (int)_mp_arg(4), @@ -24789,8 +26001,9 @@ namespace cimg_library_suffixed { } static double mp_list_set_Joff_s(_cimg_math_parser& mp) { - const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.listin.width()); - CImg &img = mp.listout[ind]; + if (!mp.imglist.width()) return cimg::type::nan(); + const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()); + CImg &img = mp.imglist[ind]; const int ox = (int)mp.mem[_cimg_mp_slot_x], oy = (int)mp.mem[_cimg_mp_slot_y], oz = (int)mp.mem[_cimg_mp_slot_z], oc = (int)mp.mem[_cimg_mp_slot_c]; @@ -24806,8 +26019,9 @@ namespace cimg_library_suffixed { } static double mp_list_set_Joff_v(_cimg_math_parser& mp) { - const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.listin.width()); - CImg &img = mp.listout[ind]; + if (!mp.imglist.width()) return cimg::type::nan(); + const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()); + CImg &img = mp.imglist[ind]; const int ox = (int)mp.mem[_cimg_mp_slot_x], oy = (int)mp.mem[_cimg_mp_slot_y], oz = (int)mp.mem[_cimg_mp_slot_z], oc = (int)mp.mem[_cimg_mp_slot_c]; @@ -24824,8 +26038,9 @@ namespace cimg_library_suffixed { } static double mp_list_set_Jxyz_s(_cimg_math_parser& mp) { - const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.listin.width()); - CImg &img = mp.listout[ind]; + if (!mp.imglist.width()) return cimg::type::nan(); + const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()); + CImg &img = mp.imglist[ind]; const double ox = mp.mem[_cimg_mp_slot_x], oy = mp.mem[_cimg_mp_slot_y], oz = mp.mem[_cimg_mp_slot_z]; const int x = (int)(ox + _mp_arg(3)), @@ -24841,8 +26056,9 @@ namespace cimg_library_suffixed { } static double mp_list_set_Jxyz_v(_cimg_math_parser& mp) { - const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.listin.width()); - CImg &img = mp.listout[ind]; + if (!mp.imglist.width()) return cimg::type::nan(); + const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()); + CImg &img = mp.imglist[ind]; const double ox = mp.mem[_cimg_mp_slot_x], oy = mp.mem[_cimg_mp_slot_y], oz = mp.mem[_cimg_mp_slot_z]; const int x = (int)(ox + _mp_arg(3)), @@ -24859,46 +26075,56 @@ namespace cimg_library_suffixed { } static double mp_list_spectrum(_cimg_math_parser& mp) { - const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.listin.width()); - return (double)mp.listin[ind]._spectrum; + const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()); + return (double)mp.imglist[ind]._spectrum; } static double mp_list_stats(_cimg_math_parser& mp) { const unsigned int - ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.listin.width()), + ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()), k = (unsigned int)mp.opcode[3]; - if (!mp.list_stats) mp.list_stats.assign(mp.listin._width); - if (!mp.list_stats[ind]) mp.list_stats[ind].assign(1,14,1,1,0).fill(mp.listin[ind].get_stats(),false); + bool get_stats = false; + cimg::mutex(13); + if (!mp.list_stats || mp.list_stats.size()!=mp.imglist._width) mp.list_stats.assign(mp.imglist._width); + if (!mp.list_stats[ind]) get_stats = true; + cimg::mutex(13,0); + + if (get_stats) { + CImg st = mp.imglist[ind].get_stats(); + cimg::mutex(13); + st.move_to(mp.list_stats[ind]); + cimg::mutex(13,0); + } return mp.list_stats(ind,k); } static double mp_list_wh(_cimg_math_parser& mp) { - const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.listin.width()); - return (double)mp.listin[ind]._width*mp.listin[ind]._height; + const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()); + return (double)mp.imglist[ind]._width*mp.imglist[ind]._height; } static double mp_list_whd(_cimg_math_parser& mp) { - const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.listin.width()); - return (double)mp.listin[ind]._width*mp.listin[ind]._height*mp.listin[ind]._depth; + const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()); + return (double)mp.imglist[ind]._width*mp.imglist[ind]._height*mp.imglist[ind]._depth; } static double mp_list_whds(_cimg_math_parser& mp) { - const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.listin.width()); - return (double)mp.listin[ind]._width*mp.listin[ind]._height*mp.listin[ind]._depth*mp.listin[ind]._spectrum; + const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()); + return (double)mp.imglist[ind]._width*mp.imglist[ind]._height*mp.imglist[ind]._depth*mp.imglist[ind]._spectrum; } static double mp_list_width(_cimg_math_parser& mp) { - const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.listin.width()); - return (double)mp.listin[ind]._width; + const unsigned int ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()); + return (double)mp.imglist[ind]._width; } static double mp_list_Ioff(_cimg_math_parser& mp) { double *ptrd = &_mp_arg(1) + 1; const unsigned int - ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.listin.width()), + ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()), boundary_conditions = (unsigned int)_mp_arg(4), vsiz = (unsigned int)mp.opcode[5]; - const CImg &img = mp.listin[ind]; + const CImg &img = mp.imglist[ind]; const longT off = (longT)_mp_arg(3), whd = (longT)img.width()*img.height()*img.depth(); @@ -24934,11 +26160,11 @@ namespace cimg_library_suffixed { static double mp_list_Ixyz(_cimg_math_parser& mp) { double *ptrd = &_mp_arg(1) + 1; const unsigned int - ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.listin.width()), + ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()), interpolation = (unsigned int)_mp_arg(6), boundary_conditions = (unsigned int)_mp_arg(7), vsiz = (unsigned int)mp.opcode[8]; - const CImg &img = mp.listin[ind]; + const CImg &img = mp.imglist[ind]; const double x = _mp_arg(3), y = _mp_arg(4), z = _mp_arg(5); const ulongT whd = (ulongT)img._width*img._height*img._depth; const T *ptrs; @@ -25020,12 +26246,12 @@ namespace cimg_library_suffixed { static double mp_list_Joff(_cimg_math_parser& mp) { double *ptrd = &_mp_arg(1) + 1; const unsigned int - ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.listin.width()), + ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()), boundary_conditions = (unsigned int)_mp_arg(4), vsiz = (unsigned int)mp.opcode[5]; const int ox = (int)mp.mem[_cimg_mp_slot_x], oy = (int)mp.mem[_cimg_mp_slot_y], oz = (int)mp.mem[_cimg_mp_slot_z]; - const CImg &img = mp.listin[ind]; + const CImg &img = mp.imglist[ind]; const longT off = img.offset(ox,oy,oz) + (longT)_mp_arg(3), whd = (longT)img.width()*img.height()*img.depth(); @@ -25061,11 +26287,11 @@ namespace cimg_library_suffixed { static double mp_list_Jxyz(_cimg_math_parser& mp) { double *ptrd = &_mp_arg(1) + 1; const unsigned int - ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.listin.width()), + ind = (unsigned int)cimg::mod((int)_mp_arg(2),mp.imglist.width()), interpolation = (unsigned int)_mp_arg(6), boundary_conditions = (unsigned int)_mp_arg(7), vsiz = (unsigned int)mp.opcode[8]; - const CImg &img = mp.listin[ind]; + const CImg &img = mp.imglist[ind]; const double ox = mp.mem[_cimg_mp_slot_x], oy = mp.mem[_cimg_mp_slot_y], oz = mp.mem[_cimg_mp_slot_z], x = ox + _mp_arg(3), y = oy + _mp_arg(4), z = oz + _mp_arg(5); @@ -25202,6 +26428,23 @@ namespace cimg_library_suffixed { return (double)(_mp_arg(2)<=_mp_arg(3)); } + static double mp_map(_cimg_math_parser& mp) { + double *ptrd = &_mp_arg(1) + 1; + const double + *ptrX = &_mp_arg(2) + 1, + *ptrP = &_mp_arg(3) + 1; + const unsigned int + sizX = (unsigned int)mp.opcode[4], + sizP = (unsigned int)mp.opcode[5], + nb_channelsX = (unsigned int)mp.opcode[6], + nb_channelsP = (unsigned int)mp.opcode[7], + boundary_conditions = (unsigned int)_mp_arg(8); + CImg(ptrd,sizX/nb_channelsX,1,1,nb_channelsX*nb_channelsP,true) = + CImg(ptrX,sizX/nb_channelsX,1,1,nb_channelsX,true). + get_map(CImg(ptrP,sizP/nb_channelsP,1,1,nb_channelsP,true),boundary_conditions); + return cimg::type::nan(); + } + static double mp_matrix_eig(_cimg_math_parser& mp) { double *ptrd = &_mp_arg(1) + 1; const double *ptr1 = &_mp_arg(2) + 1; @@ -25216,9 +26459,12 @@ namespace cimg_library_suffixed { static double mp_matrix_invert(_cimg_math_parser& mp) { double *const ptrd = &_mp_arg(1) + 1; const double *const ptr1 = &_mp_arg(2) + 1; - const unsigned int k = (unsigned int)mp.opcode[3]; - const bool use_LU = (bool)_mp_arg(4); - CImg(ptrd,k,k,1,1,true) = CImg(ptr1,k,k,1,1,true).get_invert(use_LU); + const unsigned int + w = (unsigned int)mp.opcode[3], + h = (unsigned int)mp.opcode[4]; + const bool use_LU = (bool)_mp_arg(5); + const float lambda = (float)_mp_arg(6); + CImg(ptrd,h,w,1,1,true) = CImg(ptr1,w,h,1,1,true).get_invert(use_LU,lambda); return cimg::type::nan(); } @@ -25235,17 +26481,6 @@ namespace cimg_library_suffixed { return cimg::type::nan(); } - static double mp_matrix_pseudoinvert(_cimg_math_parser& mp) { - double *ptrd = &_mp_arg(1) + 1; - const double *ptr1 = &_mp_arg(2) + 1; - const unsigned int - k = (unsigned int)mp.opcode[3], - l = (unsigned int)mp.opcode[4]; - const bool use_LU = (bool)_mp_arg(5); - CImg(ptrd,l,k,1,1,true) = CImg(ptr1,k,l,1,1,true).get_pseudoinvert(use_LU); - return cimg::type::nan(); - } - static double mp_matrix_svd(_cimg_math_parser& mp) { double *ptrd = &_mp_arg(1) + 1; const double *ptr1 = &_mp_arg(2) + 1; @@ -25295,8 +26530,8 @@ namespace cimg_library_suffixed { const longT siz, const long inc, const bool is_out) { const unsigned ind = (unsigned int)p_ref[1]; const CImg &img = is_out? - (ind==~0U?mp.imgout:mp.listout[cimg::mod((int)mp.mem[ind],mp.listout.width())]): - (ind==~0U?mp.imgin:mp.listin[cimg::mod((int)mp.mem[ind],mp.listin.width())]); + (ind==~0U?mp.imgout:mp.imglist[cimg::mod((int)mp.mem[ind],mp.imglist.width())]): + (ind==~0U?mp.imgin:mp.imglist[cimg::mod((int)mp.mem[ind],mp.imglist.width())]); const bool is_relative = (bool)p_ref[2]; int ox, oy, oz, oc; longT off = 0; @@ -25451,6 +26686,15 @@ namespace cimg_library_suffixed { return cimg::type::nan(); } + static double mp_mse(_cimg_math_parser& mp) { + const unsigned int + _siz = (unsigned int)mp.opcode[4], + siz = std::max(_siz,1U), + off = _siz?1:0; + return CImg(&_mp_arg(2) + off,1,siz,1,1,true). + MSE(CImg(&_mp_arg(3) + off,1,siz,1,1,true)); + } + static double mp_mul(_cimg_math_parser& mp) { return _mp_arg(2)*_mp_arg(3); } @@ -25531,8 +26775,11 @@ namespace cimg_library_suffixed { static double mp_polygon(_cimg_math_parser& mp) { const unsigned int i_end = (unsigned int)mp.opcode[2]; unsigned int ind = (unsigned int)mp.opcode[3]; - if (ind!=~0U) ind = (unsigned int)cimg::mod((int)_mp_arg(3),mp.listin.width()); - CImg &img = ind==~0U?mp.imgout:mp.listout[ind]; + if (ind!=~0U) { + if (!mp.imglist.width()) return cimg::type::nan(); + ind = (unsigned int)cimg::mod((int)_mp_arg(3),mp.imglist.width()); + } + CImg &img = ind==~0U?mp.imgout:mp.imglist[ind]; bool is_invalid_arguments = i_end<=4, is_outlined = false; if (!is_invalid_arguments) { int nbv = (int)_mp_arg(4); @@ -25620,8 +26867,51 @@ namespace cimg_library_suffixed { return val; } - static double mp_copy(_cimg_math_parser& mp) { - return _mp_arg(2); + static double mp_rad2deg(_cimg_math_parser& mp) { + return _mp_arg(2)*180/cimg::PI; + } + + static double mp_repeat(_cimg_math_parser& mp) { + const double nb_it = _mp_arg(2); + double + *const ptrc = mp.opcode[3]!=~0U?&_mp_arg(3):0, + *const ptrs = &_mp_arg(1); + const CImg + *const p_body = ++mp.p_code, + *const p_end = p_body + mp.opcode[4]; + + if (nb_it>0) { + const unsigned int _break_type = mp.break_type; + mp.break_type = 0; + + double it = 0; + if (ptrc) { // Version with loop variable (3 arguments) + while (it_data; + const ulongT target = mp.opcode[1]; + mp.mem[target] = _cimg_mp_defunc(mp); + } + if (mp.break_type==1) break; else if (mp.break_type==2) mp.break_type = 0; + ++it; + } + *ptrc = it; + } else // Version without loop variable (2 arguments) + while (it_data; + const ulongT target = mp.opcode[1]; + mp.mem[target] = _cimg_mp_defunc(mp); + } + if (mp.break_type==1) break; else if (mp.break_type==2) mp.break_type = 0; + ++it; + } + mp.break_type = _break_type; + } + + mp.p_code = p_end - 1; + return *ptrs; } static double mp_rol(_cimg_math_parser& mp) { @@ -25635,7 +26925,7 @@ namespace cimg_library_suffixed { static double mp_rot2d(_cimg_math_parser& mp) { double *ptrd = &_mp_arg(1) + 1; const float - theta = (float)_mp_arg(2)*cimg::PI/180, + theta = (float)_mp_arg(2), ca = std::cos(theta), sa = std::sin(theta); *(ptrd++) = ca; @@ -25647,8 +26937,12 @@ namespace cimg_library_suffixed { static double mp_rot3d(_cimg_math_parser& mp) { double *ptrd = &_mp_arg(1) + 1; - const float x = (float)_mp_arg(2), y = (float)_mp_arg(3), z = (float)_mp_arg(4), theta = (float)_mp_arg(5); - CImg(ptrd,3,3,1,1,true) = CImg::rotation_matrix(x,y,z,theta); + const float + x = (float)_mp_arg(2), + y = (float)_mp_arg(3), + z = (float)_mp_arg(4), + theta = (float)_mp_arg(5); + CImg(ptrd,3,3,1,1,true) = CImg::rotation_matrix(x,y,z,theta*180/cimg::PI); return cimg::type::nan(); } @@ -25738,6 +27032,22 @@ namespace cimg_library_suffixed { return _mp_arg(1)-=_mp_arg(2); } +#ifdef cimg_mp_func_set + static double mp_set(_cimg_math_parser& mp) { + const double *ptrs = &_mp_arg(1); + double *ptrd = &_mp_arg(3) + 1; + const unsigned int + sizs = (unsigned int)mp.opcode[2], + sizd = (unsigned int)mp.opcode[4]; + CImg sd(sizd + 1); + cimg_for_inX(sd,0,sd.width() - 1,i) sd[i] = (char)ptrd[i]; + sd.back() = 0; + if (sizs) cimg_mp_func_set(ptrs + 1,sizs,sd._data); + else cimg_mp_func_set(ptrs,0,sd._data); + return *ptrs; + } +#endif + static double mp_set_ioff(_cimg_math_parser& mp) { CImg &img = mp.imgout; const longT @@ -25948,7 +27258,9 @@ namespace cimg_library_suffixed { k = (unsigned int)mp.opcode[4], l = (unsigned int)mp.opcode[5], m = (unsigned int)mp.opcode[6]; - CImg(ptrd,m,k,1,1,true) = CImg(ptr2,m,l,1,1,false).solve(CImg(ptr1,k,l,1,1,true)); + const bool use_LU = (bool)_mp_arg(7); + CImg(ptrd,m,k,1,1,true) = CImg(ptr2,m,l,1,1,false). + solve(CImg(ptr1,k,l,1,1,true),use_LU); return cimg::type::nan(); } @@ -26018,8 +27330,7 @@ namespace cimg_library_suffixed { *ptr2 = &_mp_arg(4) + 1; const unsigned int siz1 = (unsigned int)mp.opcode[3], - siz2 = (unsigned int)mp.opcode[5], - sizM = std::max(siz1,1U); + siz2 = (unsigned int)mp.opcode[5]; const int w = (int)_mp_arg(6), h = (int)_mp_arg(7), @@ -26031,22 +27342,19 @@ namespace cimg_library_suffixed { throw CImgArgumentException("[" cimg_appname "_math_parser] CImg<%s>: Function 'store()': " "Specified image dimensions (%d,%d,%d,%d) are invalid.", pixel_type(),w,h,d,s); - if ((unsigned int)w*h*d*s>sizM) - throw CImgArgumentException("[" cimg_appname "_math_parser] CImg<%s>: Function 'store()': " - "Specified image dimensions (%d,%d,%d,%d) are too large for vector size (%u).", - pixel_type(),w,h,d,s,sizM); CImg ss(siz2 + 1); cimg_for_inX(ss,0,ss.width() - 1,i) ss[i] = (char)ptr2[i]; ss.back() = 0; - if (siz1) cimg_mp_func_store(ptr1 + 1, + if (siz1) cimg_mp_func_store(ptr1 + 1,siz1, (unsigned int)w,(unsigned int)h,(unsigned int)d,(unsigned int)s, is_compressed,ss._data); - else cimg_mp_func_store(ptr1,1,1,1,1,is_compressed,ss._data); + else cimg_mp_func_store(ptr1,1,(unsigned int)w,(unsigned int)h,(unsigned int)d,(unsigned int)s, + is_compressed,ss._data); return cimg::type::nan(); } #endif - static double mp_stov(_cimg_math_parser& mp) { + static double mp_s2v(_cimg_math_parser& mp) { const double *ptrs = &_mp_arg(2); const ulongT siz = (ulongT)mp.opcode[3]; longT ind = (longT)_mp_arg(4); @@ -26163,6 +27471,20 @@ namespace cimg_library_suffixed { return cimg::rand(_mp_arg(2),_mp_arg(3),&mp.rng); } + static double mp_u_ext(_cimg_math_parser& mp) { // Extended version with extremum control + const double eps = 1e-5; + const bool + include_min = (bool)_mp_arg(4), + include_max = (bool)_mp_arg(5); + double + m = _mp_arg(2), + M = _mp_arg(3); + if (m>M) cimg::swap(m,M); + if (!include_min) m = m>0?m*(1 + eps):m<0?m*(1 - eps):eps; + if (!include_max) M = M>0?M*(1 - eps):M<0?M*(1 + eps):-eps; + return cimg::rand(m,M,&mp.rng); + } + static double mp_ui2f(_cimg_math_parser& mp) { return (double)cimg::uint2float((unsigned int)_mp_arg(2)); } @@ -26203,6 +27525,77 @@ namespace cimg_library_suffixed { return cimg::type::nan(); } + static double mp_vector_crop_ext(_cimg_math_parser& mp) { + double *const ptrd = &_mp_arg(1) + 1; + const double *const ptrs = &_mp_arg(2) + 1; + const unsigned int + w = (unsigned int)mp.opcode[3], + h = (unsigned int)mp.opcode[4], + d = (unsigned int)mp.opcode[5], + s = (unsigned int)mp.opcode[6], + dx = (unsigned int)mp.opcode[11], + dy = (unsigned int)mp.opcode[12], + dz = (unsigned int)mp.opcode[13], + dc = (unsigned int)mp.opcode[14], + boundary_conditions = (int)_mp_arg(15); + const int x = (int)_mp_arg(7), y = (int)_mp_arg(8), z = (int)_mp_arg(9), c = (int)_mp_arg(10); + CImg(ptrd,dx,dy,dz,dc,true) = CImg(ptrs,w,h,d,s,true). + get_crop(x,y,z,c,x + dx - 1,y + dy - 1,z + dz - 1,c + dc - 1,boundary_conditions); + return cimg::type::nan(); + } + + static double mp_vector_draw(_cimg_math_parser& mp) { + double *const ptrd = &_mp_arg(1) + 1; + const double *const ptrs = &_mp_arg(7) + 1; + const unsigned int + sizD = (unsigned int)mp.opcode[2], + sizS = (unsigned int)mp.opcode[8]; + const int + w = (int)_mp_arg(3), h = (int)_mp_arg(4), d = (int)_mp_arg(5), s = (int)_mp_arg(6), + x = (int)_mp_arg(9), y = (int)_mp_arg(10), z = (int)_mp_arg(11), c = (int)_mp_arg(12); + int dx = (int)mp.opcode[13], dy = (int)mp.opcode[14], dz = (int)mp.opcode[15], dc = (int)mp.opcode[16]; + dx = (unsigned int)dx==~0U?w:(int)_mp_arg(13); + dy = (unsigned int)dy==~0U?h:(int)_mp_arg(14); + dz = (unsigned int)dz==~0U?d:(int)_mp_arg(15); + dc = (unsigned int)dc==~0U?s:(int)_mp_arg(16); + + if (w<=0 || h<=0 || d<=0 || s<=0) + throw CImgArgumentException("[" cimg_appname "_math_parser] CImg<%s>: Function 'draw()': " + "Invalid specified target vector geometry (%d,%d,%d,%d).", + mp.imgin.pixel_type(),w,h,d,s); + if (sizD<(ulongT)w*h*d*s) + throw CImgArgumentException("[" cimg_appname "_math_parser] CImg<%s>: Function 'draw()': " + "Target vector (%lu values) and its specified target geometry (%d,%d,%d,%d) " + "(%lu values) do not match.", + mp.imgin.pixel_type(),sizD,w,h,d,s,(ulongT)w*h*d*s); + if (dx<=0 || dy<=0 || dz<=0 || dc<=0) + throw CImgArgumentException("[" cimg_appname "_math_parser] CImg<%s>: Function 'draw()': " + "Invalid specified sprite geometry (%d,%d,%d,%d).", + mp.imgin.pixel_type(),dx,dy,dz,dc); + if (sizS<(ulongT)dx*dy*dz*dc) + throw CImgArgumentException("[" cimg_appname "_math_parser] CImg<%s>: Function 'draw()': " + "Sprite vector (%lu values) and its specified sprite geometry (%d,%d,%d,%d) " + "(%lu values) do not match.", + mp.imgin.pixel_type(),sizS,dx,dy,dz,dc,(ulongT)dx*dy*dz*dc); + + CImg D(ptrd,w,h,d,s,true); + const CImg S(ptrs,dx,dy,dz,dc,true); + const float opacity = (float)_mp_arg(17); + + if (mp.opcode[18]!=~0U) { // Opacity mask specified + const ulongT sizM = mp.opcode[19]; + if (sizM<(ulongT)dx*dy*dz) + throw CImgArgumentException("[" cimg_appname "_math_parser] CImg<%s>: Function 'draw()': " + "Mask vector (%lu values) and specified sprite geometry (%u,%u,%u,%u) " + "(%lu values) do not match.", + mp.imgin.pixel_type(),sizS,dx,dy,dz,dc,(ulongT)dx*dy*dz*dc); + const CImg M(&_mp_arg(18) + 1,dx,dy,dz,(unsigned int)(sizM/(dx*dy*dz)),true); + D.draw_image(x,y,z,c,S,M,opacity,(float)_mp_arg(20)); + } else D.draw_image(x,y,z,c,S,opacity); + + return cimg::type::nan(); + } + static double mp_vector_init(_cimg_math_parser& mp) { unsigned int ptrs = 4U, @@ -26297,77 +27690,51 @@ namespace cimg_library_suffixed { return off>=0 && off<(int)siz?mp.mem[ptr + off]:cimg::type::nan(); } - static double mp_vector_map_sv(_cimg_math_parser& mp) { // Operator(scalar,vector) + static double mp_vector_map_sv(_cimg_math_parser& mp) { // Operator(scalar,vector,[...]) unsigned int - siz = (unsigned int)mp.opcode[2], - ptrs = (unsigned int)mp.opcode[5] + 1; + nb_args = (unsigned int)mp.opcode[2], + siz_vector = (unsigned int)mp.opcode[3], + ptrs = (unsigned int)mp.opcode[6] + 1; double *ptrd = &_mp_arg(1) + 1; - mp_func op = (mp_func)mp.opcode[3]; - CImg l_opcode(4); - l_opcode[2] = mp.opcode[4]; // Scalar argument1 + mp_func op = (mp_func)mp.opcode[4]; + CImg l_opcode(mp.opcode._data + 3,nb_args + 2); + l_opcode[0] = mp.opcode[1]; l_opcode.swap(mp.opcode); ulongT &argument2 = mp.opcode[3]; - while (siz-->0) { argument2 = ptrs++; *(ptrd++) = (*op)(mp); } + while (siz_vector-->0) { argument2 = ptrs++; *(ptrd++) = (*op)(mp); } l_opcode.swap(mp.opcode); return cimg::type::nan(); } - static double mp_vector_map_v(_cimg_math_parser& mp) { // Operator(vector) + static double mp_vector_map_v(_cimg_math_parser& mp) { // Operator(vector,[...]) unsigned int - siz = (unsigned int)mp.opcode[2], - ptrs = (unsigned int)mp.opcode[4] + 1; + nb_args = (unsigned int)mp.opcode[2], + siz_vector = (unsigned int)mp.opcode[3], + ptrs = (unsigned int)mp.opcode[5] + 1; double *ptrd = &_mp_arg(1) + 1; - mp_func op = (mp_func)mp.opcode[3]; - CImg l_opcode(1,3); + mp_func op = (mp_func)mp.opcode[4]; + CImg l_opcode(mp.opcode._data + 3,nb_args + 2); + l_opcode[0] = l_opcode[1]; l_opcode.swap(mp.opcode); ulongT &argument = mp.opcode[2]; - while (siz-->0) { argument = ptrs++; *(ptrd++) = (*op)(mp); } + while (siz_vector-->0) { argument = ptrs++; *(ptrd++) = (*op)(mp); } l_opcode.swap(mp.opcode); return cimg::type::nan(); } - static double mp_vector_map_vs(_cimg_math_parser& mp) { // Operator(vector,scalar) + static double mp_vector_map_vv(_cimg_math_parser& mp) { // Operator(vector,vector,[...]) unsigned int - siz = (unsigned int)mp.opcode[2], - ptrs = (unsigned int)mp.opcode[4] + 1; + nb_args = (unsigned int)mp.opcode[2], + siz_vector = (unsigned int)mp.opcode[3], + ptrs1 = (unsigned int)mp.opcode[5] + 1, + ptrs2 = (unsigned int)mp.opcode[6] + 1; double *ptrd = &_mp_arg(1) + 1; - mp_func op = (mp_func)mp.opcode[3]; - CImg l_opcode(1,4); - l_opcode[3] = mp.opcode[5]; // Scalar argument2 - l_opcode.swap(mp.opcode); - ulongT &argument1 = mp.opcode[2]; - while (siz-->0) { argument1 = ptrs++; *(ptrd++) = (*op)(mp); } - l_opcode.swap(mp.opcode); - return cimg::type::nan(); - } - - static double mp_vector_map_vss(_cimg_math_parser& mp) { // Operator(vector,scalar,scalar) - unsigned int - siz = (unsigned int)mp.opcode[2], - ptrs = (unsigned int)mp.opcode[4] + 1; - double *ptrd = &_mp_arg(1) + 1; - mp_func op = (mp_func)mp.opcode[3]; - CImg l_opcode(1,5); - l_opcode[3] = mp.opcode[5]; // Scalar argument2 - l_opcode[4] = mp.opcode[6]; // Scalar argument3 - l_opcode.swap(mp.opcode); - ulongT &argument1 = mp.opcode[2]; - while (siz-->0) { argument1 = ptrs++; *(ptrd++) = (*op)(mp); } - l_opcode.swap(mp.opcode); - return cimg::type::nan(); - } - - static double mp_vector_map_vv(_cimg_math_parser& mp) { // Operator(vector,vector) - unsigned int - siz = (unsigned int)mp.opcode[2], - ptrs1 = (unsigned int)mp.opcode[4] + 1, - ptrs2 = (unsigned int)mp.opcode[5] + 1; - double *ptrd = &_mp_arg(1) + 1; - mp_func op = (mp_func)mp.opcode[3]; - CImg l_opcode(1,4); + mp_func op = (mp_func)mp.opcode[4]; + CImg l_opcode(mp.opcode._data + 3,nb_args + 2); + l_opcode[0] = l_opcode[1]; l_opcode.swap(mp.opcode); ulongT &argument1 = mp.opcode[2], &argument2 = mp.opcode[3]; - while (siz-->0) { argument1 = ptrs1++; argument2 = ptrs2++; *(ptrd++) = (*op)(mp); } + while (siz_vector-->0) { argument1 = ptrs1++; argument2 = ptrs2++; *(ptrd++) = (*op)(mp); } l_opcode.swap(mp.opcode); return cimg::type::nan(); } @@ -26431,6 +27798,38 @@ namespace cimg_library_suffixed { return cimg::type::nan(); } + static double mp_vector_resize_ext(_cimg_math_parser& mp) { + double *const ptrd = &_mp_arg(1) + 1; + const unsigned int + siz = (unsigned int)mp.opcode[2], + ow = (unsigned int)mp.opcode[4], + oh = (unsigned int)mp.opcode[5], + od = (unsigned int)mp.opcode[6], + os = (unsigned int)mp.opcode[7], + nw = (unsigned int)mp.opcode[8], + nh = (unsigned int)mp.opcode[9], + nd = (unsigned int)mp.opcode[10], + ns = (unsigned int)mp.opcode[11]; + const int + interpolation = (int)_mp_arg(12), + boundary_conditions = (int)_mp_arg(13); + const float + ax = (float)_mp_arg(14), + ay = (float)_mp_arg(15), + az = (float)_mp_arg(16), + ac = (float)_mp_arg(17); + if (siz) { // Resize vector + const double *const ptrs = &_mp_arg(3) + 1; + CImg(ptrd,nw,nh,nd,ns,true) = CImg(ptrs,ow,oh,od,os,true). + get_resize(nw,nh,nd,ns,interpolation,boundary_conditions,ax,ay,az,ac); + } else { // Resize scalar + const double value = _mp_arg(3); + CImg(ptrd,nw,nh,nd,ns,true) = CImg(1,1,1,1,value). + resize(nw,nh,nd,ns,interpolation,boundary_conditions,ax,ay,az,ac); + } + return cimg::type::nan(); + } + static double mp_vector_reverse(_cimg_math_parser& mp) { double *const ptrd = &_mp_arg(1) + 1; const double *const ptrs = &_mp_arg(2) + 1; @@ -26532,7 +27931,7 @@ namespace cimg_library_suffixed { _cimg_mp_vfunc(res = vec.get_stats()[3]); } - static double mp_vtos(_cimg_math_parser& mp) { + static double mp_v2s(_cimg_math_parser& mp) { double *ptrd = &_mp_arg(1) + 1; const unsigned int sizd = (unsigned int)mp.opcode[2], @@ -26856,7 +28255,7 @@ namespace cimg_library_suffixed { #define _cimg_create_pointwise_functions(name,func,min_size) \ CImg& name() { \ if (is_empty()) return *this; \ - cimg_openmp_for(*this,func((double)*ptr),min_size); \ + cimg_openmp_for(*this,func((typename cimg::superset::type)*ptr),min_size); \ return *this; \ } \ CImg get_##name() const { \ @@ -26902,6 +28301,15 @@ namespace cimg_library_suffixed { **/ _cimg_create_pointwise_functions(exp,std::exp,4096) + //! Compute the error function of each pixel value. + /** + Replace each pixel value \f$I_{(x,y,z,c)}\f$ of the image instance by its error function. + \note + - The \inplace of this method statically casts the computed values to the pixel type \c T. + - The \newinstance returns a \c CImg image, if the pixel type \c T is \e not float-valued. + **/ + _cimg_create_pointwise_functions(erf,std::erf,4096) + //! Compute the logarithm of each pixel value. /** Replace each pixel value \f$I_{(x,y,z,c)}\f$ of the image instance by its logarithm @@ -28065,20 +29473,19 @@ namespace cimg_library_suffixed { \param y Value of the pre-defined variable \c y. \param z Value of the pre-defined variable \c z. \param c Value of the pre-defined variable \c c. - \param list_inputs A list of input images attached to the specified math formula. - \param[out] list_outputs A pointer to a list of output images attached to the specified math formula. + \param list_images A list of images attached to the specified math formula. **/ double eval(const char *const expression, const double x=0, const double y=0, const double z=0, const double c=0, - const CImgList *const list_inputs=0, CImgList *const list_outputs=0) { - return _eval(this,expression,x,y,z,c,list_inputs,list_outputs); + CImgList *const list_images=0) { + return _eval(this,expression,x,y,z,c,list_images); } //! Evaluate math formula \const. double eval(const char *const expression, const double x=0, const double y=0, const double z=0, const double c=0, - const CImgList *const list_inputs=0, CImgList *const list_outputs=0) const { - return _eval(0,expression,x,y,z,c,list_inputs,list_outputs); + CImgList *const list_images=0) const { + return _eval(0,expression,x,y,z,c,list_images); } // Fast function to pre-evaluate common expressions. @@ -28088,25 +29495,55 @@ namespace cimg_library_suffixed { if (!expression || !*expression) { res = (t)0; return true; } const char c = *expression; bool is_success = false; - char c1, end; - double val; - if (c>='0' && c<='9') { // Possible value + char sep, end; + double val,val2; + int err; + if ((c>='0' && c<='9') || c=='.') { // Possible value if (!expression[1]) { // Single digit res = (t)(c - '0'); is_success = true; - } else if (std::sscanf(expression,"%lf%c",&val,&end)==1) { // Single value + } else if ((err = std::sscanf(expression,"%lf %c%lf %c",&val,&sep,&val2,&end))==1) { // Single value res = (t)val; is_success = true; + } else if (err==3) { // Value1 Operator Value2 + switch (sep) { + case '+' : res = (t)(val + val2); is_success = true; break; + case '-' : res = (t)(val - val2); is_success = true; break; + case '*' : res = (t)(val*val2); is_success = true; break; + case '/' : res = (t)(val/val2); is_success = true; break; + case '%' : res = (t)cimg::mod(val,val2); is_success = true; break; + case '&' : res = (t)((long)val & (long)val2); is_success = true; break; + case '|' : res = (t)((long)val | (long)val2); is_success = true; break; + case '>' : res = (t)(val>val2); is_success = true; break; + case '<' : res = (t)(val='0' && c1<='0') { + (((sep = expression[1])>='0' && sep<='9') || sep=='.')) { if (!expression[2]) { // [+-!] + Single digit - const int ival = c1 - '0'; + const int ival = sep - '0'; res = (t)(c=='+'?ival:c=='-'?-ival:!ival); is_success = true; - } else if (std::sscanf(expression + 1,"%lf%c",&val,&end)==1) { // [+-!] Single value + } else if ((err = std::sscanf(expression + 1,"%lf %c%lf %c",&val,&sep,&val2,&end))==1) { // [+-!] Single value res = (t)(c=='+'?val:c=='-'?-val:(double)!val); is_success = true; + } else if (err==3) { // [+-!] Value1 Operator Value2 + const double val1 = c=='+'?val:c=='-'?-val:(double)!val; + switch (sep) { + case '+' : res = (t)(val1 + val2); is_success = true; break; + case '-' : res = (t)(val1 - val2); is_success = true; break; + case '*' : res = (t)(val1*val2); is_success = true; break; + case '/' : res = (t)(val1/val2); is_success = true; break; + case '%' : res = (t)cimg::mod(val1,val2); is_success = true; break; + case '&' : res = (t)((long)val1 & (long)val2); is_success = true; break; + case '|' : res = (t)((long)val1 | (long)val2); is_success = true; break; + case '>' : res = (t)(val1>val2); is_success = true; break; + case '<' : res = (t)(val1 *const img_output, const char *const expression, const double x, const double y, const double z, const double c, - const CImgList *const list_inputs, CImgList *const list_outputs) const { + CImgList *const list_images) const { if (!expression || !*expression) return 0; double _val = 0; if (__eval(expression,_val)) return _val; _cimg_math_parser mp(expression + (*expression=='>' || *expression=='<' || *expression=='*' || *expression==':'),"eval", - *this,img_output,list_inputs,list_outputs,false); + *this,img_output,list_images,false); mp.begin_t(); const double val = mp(x,y,z,c); mp.end_t(); @@ -28143,34 +29580,33 @@ namespace cimg_library_suffixed { \param y Value of the pre-defined variable \c y. \param z Value of the pre-defined variable \c z. \param c Value of the pre-defined variable \c c. - \param list_inputs A list of input images attached to the specified math formula. - \param[out] list_outputs A pointer to a list of output images attached to the specified math formula. + \param list_images A list of input images attached to the specified math formula. **/ template void eval(CImg &output, const char *const expression, const double x=0, const double y=0, const double z=0, const double c=0, - const CImgList *const list_inputs=0, CImgList *const list_outputs=0) { - _eval(output,this,expression,x,y,z,c,list_inputs,list_outputs); + CImgList *const list_images=0) { + _eval(output,this,expression,x,y,z,c,list_images); } //! Evaluate math formula \const. template void eval(CImg& output, const char *const expression, const double x=0, const double y=0, const double z=0, const double c=0, - const CImgList *const list_inputs=0, CImgList *const list_outputs=0) const { - _eval(output,0,expression,x,y,z,c,list_inputs,list_outputs); + CImgList *const list_images=0) const { + _eval(output,0,expression,x,y,z,c,list_images); } template void _eval(CImg& output, CImg *const img_output, const char *const expression, const double x, const double y, const double z, const double c, - const CImgList *const list_inputs, CImgList *const list_outputs) const { + CImgList *const list_images) const { if (!expression || !*expression) { output.assign(1); *output = 0; return; } double _val = 0; if (__eval(expression,_val)) { output.assign(1); *output = _val; return; } _cimg_math_parser mp(expression + (*expression=='>' || *expression=='<' || *expression=='*' || *expression==':'),"eval", - *this,img_output,list_inputs,list_outputs,false); + *this,img_output,list_images,false); output.assign(1,std::max(1U,mp.result_dim)); mp.begin_t(); mp(x,y,z,c,output._data); @@ -28182,36 +29618,34 @@ namespace cimg_library_suffixed { /** \param expression Math formula, as a C-string. \param xyzc Set of values (x,y,z,c) used for the evaluation. - \param list_inputs A list of input images attached to the specified math formula. - \param[out] list_outputs A pointer to a list of output images attached to the specified math formula. + \param list_images A list of input images attached to the specified math formula. **/ template CImg eval(const char *const expression, const CImg& xyzc, - const CImgList *const list_inputs=0, CImgList *const list_outputs=0) { - return _eval(this,expression,xyzc,list_inputs,list_outputs); + CImgList *const list_images=0) { + return _eval(this,expression,xyzc,list_images); } //! Evaluate math formula on a set of variables \const. template CImg eval(const char *const expression, const CImg& xyzc, - const CImgList *const list_inputs=0, CImgList *const list_outputs=0) const { - return _eval(0,expression,xyzc,list_inputs,list_outputs); + CImgList *const list_images=0) const { + return _eval(0,expression,xyzc,list_images); } template CImg _eval(CImg *const output, const char *const expression, const CImg& xyzc, - const CImgList *const list_inputs=0, CImgList *const list_outputs=0) const { + CImgList *const list_images=0) const { CImg res(1,xyzc.size()/4); if (!expression || !*expression) return res.fill(0); - _cimg_math_parser mp(expression,"eval",*this,output,list_inputs,list_outputs,false); + _cimg_math_parser mp(expression,"eval",*this,output,list_images,false); #if cimg_use_openmp!=0 - unsigned int tid = 0; cimg_pragma_openmp(parallel if (res._height>=512)) { - _cimg_math_parser *_mp = 0; - cimg_pragma_openmp(critical(_eval)) { _mp = !tid?&mp:new _cimg_math_parser(mp); ++tid; } - _cimg_math_parser &lmp = *_mp; + _cimg_math_parser + *const _mp = omp_get_thread_num()?new _cimg_math_parser(mp):&mp, + &lmp = *_mp; cimg_pragma_openmp(barrier) lmp.begin_t(); cimg_pragma_openmp(for) @@ -28597,15 +30031,25 @@ namespace cimg_library_suffixed { //! Invert the instance image, viewed as a matrix. /** + If the instance matrix is not square, the Moore-Penrose pseudo-inverse is computed instead. \param use_LU Choose the inverting algorithm. Can be: - - \c true: LU-based matrix inversion. - - \c false: SVD-based matrix inversion. + - \c true: LU solver (faster but less precise). + - \c false: SVD solver (more precise but slower). + \param lambda is used only in the Moore-Penrose pseudoinverse for estimating A^t.(A^t.A + lambda.Id)^-1. **/ - CImg& invert(const bool use_LU=true) { - if (_width!=_height || _depth!=1 || _spectrum!=1) + CImg& invert(const bool use_LU=false, const float lambda=0) { + if (_depth!=1 || _spectrum!=1) throw CImgInstanceException(_cimg_instance - "invert(): Instance is not a square matrix.", + "invert(): Instance is not a matrix.", cimg_instance); + if (lambda<0) + throw CImgArgumentException(_cimg_instance + "invert(): Specified lambda (%g) should be >=0.", + cimg_instance); + + if (_width!=_height) return get_invert(use_LU,lambda).move_to(*this); // Non-square matrix: Pseudoinverse + + // Square matrix. const double dete = _width>3?-1.:det(); if (dete!=0. && _width==2) { const double @@ -28646,7 +30090,7 @@ namespace cimg_library_suffixed { if (!INFO) cimg_forXY(*this,k,l) (*this)(k,l) = (T)(lapA[k*N + l]); else fill(0); delete[] IPIV; delete[] lapA; delete[] WORK; #else - if (use_LU) { // LU-based + if (use_LU) { // LU solver CImg A(*this,false), indx; bool d; A._LU(indx,d); @@ -28657,47 +30101,63 @@ namespace cimg_library_suffixed { col._solve(A,indx); cimg_forX(*this,i) (*this)(j,i) = (T)col(i); } - } else pseudoinvert(false); // SVD-based + } else _get_invert_svd(false).move_to(*this); // SVD solver #endif } return *this; } //! Invert the instance image, viewed as a matrix \newinstance. - CImg get_invert(const bool use_LU=true) const { - return CImg(*this,false).invert(use_LU); - } + CImg get_invert(const bool use_LU=false, const float lambda=0) const { + if (_depth!=1 || _spectrum!=1) + throw CImgInstanceException(_cimg_instance + "invert(): Instance is not a matrix.", + cimg_instance); + if (lambda<0) + throw CImgArgumentException(_cimg_instance + "invert(): Specified lambda (%g) should be >=0.", + cimg_instance); - //! Compute the Moore-Penrose pseudo-inverse of the instance image, viewed as a matrix. - /** - **/ - CImg& pseudoinvert(const bool use_LU=false) { - return get_pseudoinvert(use_LU).move_to(*this); - } + if (_width==_height) return CImg(*this,false).invert(use_LU,lambda); // Square matrix - //! Compute the Moore-Penrose pseudo-inverse of the instance image, viewed as a matrix \newinstance. - CImg get_pseudoinvert(const bool use_LU=false) const { - - // LU-based method. + // Non-square matrix: Pseudoinverse if (use_LU) { - CImg AtA(width(),width()); - cimg_pragma_openmp(parallel for cimg_openmp_if_size(_width*_height,128*128)) - cimg_forY(AtA,i) - for (int j = 0; j<=i; ++j) { - double res = 0; - cimg_forY(*this,k) res+=(*this)(i,k)*(*this)(j,k); - AtA(j,i) = AtA(i,j) = (Tfloat)res; - } - AtA.invert(true); - return AtA*get_transpose(); + if (_width<_height) { // under-solved system -> (A^t.A)^-1.A^t + CImg AtA(width(),width()); + cimg_pragma_openmp(parallel for cimg_openmp_if_size(_width*_height,128*128)) + cimg_forY(AtA,i) + for (int j = 0; j<=i; ++j) { + double res = 0; + cimg_forY(*this,k) res+=(*this)(i,k)*(*this)(j,k); + AtA(j,i) = AtA(i,j) = (Tfloat)res; + } + if (lambda!=0) cimg_forY(AtA,i) AtA(i,i)+=lambda; + AtA.invert(true); + return AtA*get_transpose(); + } else { // over-resolved linear system -> A^t.(A.A^t)^-1 + CImg AAt(height(),height()); + cimg_pragma_openmp(parallel for cimg_openmp_if_size(_width*_height,128*128)) + cimg_forY(AAt,i) + for (int j = 0; j<=i; ++j) { + double res = 0; + cimg_forX(*this,k) res+=(*this)(k,i)*(*this)(k,j); + AAt(j,i) = AAt(i,j) = (Tfloat)res; + } + if (lambda!=0) cimg_forY(AAt,i) AAt(i,i)+=lambda; + AAt.invert(true); + return get_transpose()*AAt; + } } + return _get_invert_svd(lambda); + } - // SVD-based method. + // SVD solver, both used for inverse and pseudoinverse. + CImg _get_invert_svd(const float lambda) const { CImg U, S, V; SVD(U,S,V,false); const Tfloat epsilon = (sizeof(Tfloat)<=4?5.96e-8f:1.11e-16f)*std::max(_width,_height)*S.max(); cimg_forX(V,x) { - const Tfloat s = S(x), invs = s>epsilon?1/s:0; + const Tfloat s = S(x), invs = lambda?1/(lambda + s):s>epsilon?1/s:0; cimg_forY(V,y) V(x,y)*=invs; } return V*U.transpose(); @@ -28707,8 +30167,8 @@ namespace cimg_library_suffixed { /** \param A Matrix of the linear system. \param use_LU In case of non square system (least-square solution), - choose between SVD-based (\c false) or LU-based (\c true) method. - LU method is faster for large matrices, but numerically less stable. + choose between SVD (\c false) or LU (\c true) solver. + LU solver is faster for large matrices, but numerically less stable. \note Solve \c AX = B where \c B=*this. **/ template @@ -28810,10 +30270,10 @@ namespace cimg_library_suffixed { INFO); assign(NRHS, N); if (!INFO) cimg_forXY(*this,k,l) (*this)(k,l) = (T)lapB[k*M + l]; - else (A.get_pseudoinvert(use_LU)*(*this)).move_to(*this); + else (A.get_invert(use_LU)*(*this)).move_to(*this); delete[] lapA; delete[] lapB; delete[] WORK; #else - (A.get_pseudoinvert(use_LU)*(*this)).move_to(*this); + (A.get_invert(use_LU)*(*this)).move_to(*this); #endif } return *this; @@ -29491,7 +30951,7 @@ namespace cimg_library_suffixed { cimg_instance, dictionary._width,dictionary._height,dictionary._depth,dictionary._spectrum); - if (!method) return get_solve(dictionary,true); + if (!method) return get_solve(dictionary); CImg W(_width,dictionary._width,1,1,0); // Compute dictionary norm and normalize it. @@ -29557,7 +31017,7 @@ namespace cimg_library_suffixed { cimg_forY(sD,y) sD(sd,y) = D(d,y); inds[sd++] = d; } - S0.get_solve(sD,true).move_to(sD); // sD is now a one-column vector of weights + S0.get_solve(sD).move_to(sD); // sD is now a one-column vector of weights // Recompute residual signal. S = S0; @@ -29584,7 +31044,7 @@ namespace cimg_library_suffixed { cimg_forY(sD,y) sD(sd,y) = D(d,y); inds[sd++] = d; } - S0.get_solve(sD,true).move_to(sD); + S0.get_solve(sD).move_to(sD); cimg_forY(sD,k) W(x,inds[k]) = sD[k]; } } @@ -30030,6 +31490,70 @@ namespace cimg_library_suffixed { return r; } + //! Return a \c 1x17 image containing specified values. + static CImg vector(const T& a0, const T& a1, const T& a2, const T& a3, + const T& a4, const T& a5, const T& a6, const T& a7, + const T& a8, const T& a9, const T& a10, const T& a11, + const T& a12, const T& a13, const T& a14, const T& a15, + const T& a16) { + CImg r(1,17); + r[0] = a0; r[1] = a1; r[2] = a2; r[3] = a3; r[4] = a4; r[5] = a5; r[6] = a6; r[7] = a7; r[8] = a8; r[9] = a9; + r[10] = a10; r[11] = a11; r[12] = a12; r[13] = a13; r[14] = a14; r[15] = a15; r[16] = a16; + return r; + } + + //! Return a \c 1x18 image containing specified values. + static CImg vector(const T& a0, const T& a1, const T& a2, const T& a3, + const T& a4, const T& a5, const T& a6, const T& a7, + const T& a8, const T& a9, const T& a10, const T& a11, + const T& a12, const T& a13, const T& a14, const T& a15, + const T& a16, const T& a17) { + CImg r(1,18); + r[0] = a0; r[1] = a1; r[2] = a2; r[3] = a3; r[4] = a4; r[5] = a5; r[6] = a6; r[7] = a7; r[8] = a8; r[9] = a9; + r[10] = a10; r[11] = a11; r[12] = a12; r[13] = a13; r[14] = a14; r[15] = a15; r[16] = a16; r[17] = a17; + return r; + } + + //! Return a \c 1x19 image containing specified values. + static CImg vector(const T& a0, const T& a1, const T& a2, const T& a3, + const T& a4, const T& a5, const T& a6, const T& a7, + const T& a8, const T& a9, const T& a10, const T& a11, + const T& a12, const T& a13, const T& a14, const T& a15, + const T& a16, const T& a17, const T& a18) { + CImg r(1,19); + r[0] = a0; r[1] = a1; r[2] = a2; r[3] = a3; r[4] = a4; r[5] = a5; r[6] = a6; r[7] = a7; r[8] = a8; r[9] = a9; + r[10] = a10; r[11] = a11; r[12] = a12; r[13] = a13; r[14] = a14; r[15] = a15; r[16] = a16; r[17] = a17; + r[18] = a18; + return r; + } + + //! Return a \c 1x20 image containing specified values. + static CImg vector(const T& a0, const T& a1, const T& a2, const T& a3, + const T& a4, const T& a5, const T& a6, const T& a7, + const T& a8, const T& a9, const T& a10, const T& a11, + const T& a12, const T& a13, const T& a14, const T& a15, + const T& a16, const T& a17, const T& a18, const T& a19) { + CImg r(1,20); + r[0] = a0; r[1] = a1; r[2] = a2; r[3] = a3; r[4] = a4; r[5] = a5; r[6] = a6; r[7] = a7; r[8] = a8; r[9] = a9; + r[10] = a10; r[11] = a11; r[12] = a12; r[13] = a13; r[14] = a14; r[15] = a15; r[16] = a16; r[17] = a17; + r[18] = a18; r[19] = a19; + return r; + } + + //! Return a \c 1x21 image containing specified values. + static CImg vector(const T& a0, const T& a1, const T& a2, const T& a3, + const T& a4, const T& a5, const T& a6, const T& a7, + const T& a8, const T& a9, const T& a10, const T& a11, + const T& a12, const T& a13, const T& a14, const T& a15, + const T& a16, const T& a17, const T& a18, const T& a19, + const T& a20) { + CImg r(1,21); + r[0] = a0; r[1] = a1; r[2] = a2; r[3] = a3; r[4] = a4; r[5] = a5; r[6] = a6; r[7] = a7; r[8] = a8; r[9] = a9; + r[10] = a10; r[11] = a11; r[12] = a12; r[13] = a13; r[14] = a14; r[15] = a15; r[16] = a16; r[17] = a17; + r[18] = a18; r[19] = a19; r[20] = a20; + return r; + } + //! Return a 1x1 matrix containing specified coefficients. /** \param a0 First matrix value. @@ -30245,8 +31769,8 @@ namespace cimg_library_suffixed { for (ptrd = _data; ptrd& fill(const char *const expression, const bool repeat_values, const bool allow_formula=true, - const CImgList *const list_inputs=0, CImgList *const list_outputs=0) { - return _fill(expression,repeat_values,allow_formula?1:0,list_inputs,list_outputs,"fill",0); + CImgList *const list_images=0) { + return _fill(expression,repeat_values,allow_formula?1:0,list_images,"fill",0); } // 'formula_mode' = { 0 = does not allow formula | 1 = allow formula | // 2 = allow formula and do not fill image values }. CImg& _fill(const char *const expression, const bool repeat_values, const unsigned int formula_mode, - const CImgList *const list_inputs, CImgList *const list_outputs, - const char *const calling_function, const CImg *provides_copy) { + CImgList *const list_images, const char *const calling_function, const CImg *provides_copy) { if (is_empty() || !expression || !*expression) return *this; const unsigned int omode = cimg::exception_mode(); cimg::exception_mode(0); - CImg is_error; - bool is_value_sequence = false; + CImg is_error_expr; + bool is_error_seq = false, is_value_sequence = false; cimg_abort_init; if (formula_mode) { @@ -30696,7 +32218,7 @@ namespace cimg_library_suffixed { CImg base = provides_copy?provides_copy->get_shared():get_shared(); _cimg_math_parser mp(expression + (*expression=='>' || *expression=='<' || *expression=='*' || *expression==':'), - calling_function,base,this,list_inputs,list_outputs,true); + calling_function,base,this,list_images,true); if (!provides_copy && expression && *expression!='>' && *expression!='<' && *expression!=':' && mp.need_input_copy) base.assign().assign(*this,false); // Needs input copy @@ -30715,14 +32237,21 @@ namespace cimg_library_suffixed { bool do_in_parallel = false; #if cimg_use_openmp!=0 - cimg_openmp_if(*expression=='*' || *expression==':' || - (mp.is_parallelizable && M>=(cimg_openmp_sizefactor)*320 && size()/M>=2)) + if (mp.is_noncritical_run && (*expression=='*' || *expression==':')) + throw CImgArgumentException(_cimg_instance + "%s(): Cannot evaluate expression '%s' in parallel, " + "as 'run()' is used outside a 'critical()' section.", + cimg_instance,calling_function,expression); + cimg_openmp_if(!mp.is_noncritical_run && + (*expression=='*' || *expression==':' || + (mp.is_parallelizable && M>=(cimg_openmp_sizefactor)*320 && size()/M>=2))) do_in_parallel = true; #endif if (mp.result_dim) { // Vector-valued expression const unsigned int N = std::min(mp.result_dim,_spectrum); const ulongT whd = (ulongT)_width*_height*_depth; T *ptrd = *expression=='<'?_data + _width*_height*_depth - 1:_data; + if (*expression=='<') { CImg res(1,mp.result_dim); mp.begin_t(); @@ -30754,12 +32283,11 @@ namespace cimg_library_suffixed { } else { #if cimg_use_openmp!=0 - unsigned int tid = 0; cimg_pragma_openmp(parallel) { - _cimg_math_parser *_mp = 0; - cimg_pragma_openmp(critical(_fill)) { _mp = !tid?&mp:new _cimg_math_parser(mp); ++tid; } - _cimg_math_parser &lmp = *_mp; + _cimg_math_parser + *const _mp = omp_get_thread_num()?new _cimg_math_parser(mp):&mp, + &lmp = *_mp; lmp.is_fill = true; cimg_pragma_openmp(barrier) lmp.begin_t(); @@ -30811,12 +32339,11 @@ namespace cimg_library_suffixed { } else { #if cimg_use_openmp!=0 - unsigned int tid = 0; cimg_pragma_openmp(parallel) { - _cimg_math_parser *_mp = 0; - cimg_pragma_openmp(critical(_fill)) { _mp = !tid?&mp:new _cimg_math_parser(mp); ++tid; } - _cimg_math_parser &lmp = *_mp; + _cimg_math_parser + *const _mp = omp_get_thread_num()?new _cimg_math_parser(mp):&mp, + &lmp = *_mp; lmp.is_fill = true; cimg_pragma_openmp(barrier) lmp.begin_t(); @@ -30846,36 +32373,20 @@ namespace cimg_library_suffixed { } } mp.end(); - } catch (CImgException& e) { CImg::string(e._message).move_to(is_error); } + } catch (CImgException& e) { CImg::string(e._message).move_to(is_error_expr); } } // Try to fill values according to a value sequence. - if (!formula_mode || is_value_sequence || is_error) { - CImg item(256); - char sep = 0; - const char *nexpression = expression; - ulongT nb = 0; - const ulongT siz = size(); - T *ptrd = _data; - for (double val = 0; *nexpression && nb0 && cimg_sscanf(item,"%lf",&val)==1 && (sep==',' || sep==';' || err==1)) { - nexpression+=std::strlen(item) + (err>1); - *(ptrd++) = (T)val; - } else break; - } + if (!formula_mode || is_value_sequence || is_error_expr) { + is_error_seq = _fill_from_values(expression,repeat_values); cimg::exception_mode(omode); - if (nb get_fill(const char *const expression, const bool repeat_values, const bool allow_formula=true, - const CImgList *const list_inputs=0, CImgList *const list_outputs=0) const { - return (+*this).fill(expression,repeat_values,allow_formula?1:0,list_inputs,list_outputs); + CImgList *const list_images=0) const { + return (+*this).fill(expression,repeat_values,allow_formula?1:0,list_images); + } + + //! Fill sequentially pixel values according to a value sequence, given as a string. + /** + \param values C-string describing a sequence of values. + \param repeat_values Tells if this sequence must be repeated when filling. + **/ + CImg& fill_from_values(const char *const values, const bool repeat_values) { + if (_fill_from_values(values,repeat_values)) + throw CImgArgumentException(_cimg_instance + "Invalid sequence of filling values '%s'.", + cimg_instance,values); + return *this; + } + + //! Fill sequentially pixel values according to a value sequence, given as a string \newinstance. + CImg get_fill_from_values(const char *const values, const bool repeat_values) const { + return (+*this).fill_from_values(values,repeat_values); + } + + // Fill image according to a value sequence, given as a string. + // Return 'true' if an error occured. + bool _fill_from_values(const char *const values, const bool repeat_values) { + CImg item(256); + const char *nvalues = values; + const ulongT siz = size(); + T *ptrd = _data; + ulongT nb = 0; + char sep = 0; + for (double val = 0; *nvalues && nb0 && cimg_sscanf(item,"%lf",&val)==1 && (sep==',' || sep==';' || err==1)) { + nvalues+=std::strlen(item) + (err>1); + *(ptrd++) = (T)val; + } else break; + } + if (nb hist = get_histogram(nb_levels,m,M); + ulongT sum = 0, sumB = 0, wB = 0; + double best_variance = 0; + unsigned int best_t = 0; + cimg_forX(hist,t) sum+=t*hist[t]; + cimg_forX(hist,t) { + wB+=hist[t]; + if (wB) { + const ulongT wF = size() - wB; + if (!wF) break; + sumB+=t*hist[t]; + const double + mB = (double)sumB/wB, + mF = (double)(sum - sumB)/wF, + variance = wB*wF*cimg::sqr(mB - mF); + if (variance>best_variance) { best_variance = variance; best_t = t; } + } + } + return m + best_t*(M - m)/(hist.width() - 1); + } + //! Threshold pixel values. /** \param value Threshold value @@ -31693,7 +33272,7 @@ namespace cimg_library_suffixed { return (+*this).equalize(nblevels); } - //! Index multi-valued pixels regarding to a specified colormap. + //! Index multi-valued pixels regarding to a specified palette. /** \param colormap Multi-valued colormap used as the basis for multi-valued pixel indexing. \param dithering Level of dithering (0=disable, 1=standard level). @@ -31965,34 +33544,35 @@ namespace cimg_library_suffixed { return res; } - //! Map predefined colormap on the scalar (indexed) image instance. + //! Map predefined palette on the scalar (indexed) image instance. /** - \param colormap Multi-valued colormap used for mapping the indexes. - \param boundary_conditions Boundary conditions. Can be { 0=dirichlet | 1=neumann | 2=periodic | 3=mirror }. + \param palette Multi-valued palette used for mapping the indexes. + \param boundary_conditions Boundary conditions. + Can be { 0=dirichlet | 1=neumann | 2=periodic | 3=mirror }. \par Example \code const CImg img("reference.jpg"), - colormap1(3,1,1,3, 0,128,255, 0,128,255, 0,128,255), - colormap2(3,1,1,3, 255,0,0, 0,255,0, 0,0,255), - res = img.get_index(colormap1,0).map(colormap2); + palette1(3,1,1,3, 0,128,255, 0,128,255, 0,128,255), + palette2(3,1,1,3, 255,0,0, 0,255,0, 0,0,255), + res = img.get_index(palette1,0).map(palette2); (img,res).display(); \endcode \image html ref_map.jpg **/ template - CImg& map(const CImg& colormap, const unsigned int boundary_conditions=0) { - return get_map(colormap,boundary_conditions).move_to(*this); + CImg& map(const CImg& palette, const unsigned int boundary_conditions=0) { + return get_map(palette,boundary_conditions).move_to(*this); } - //! Map predefined colormap on the scalar (indexed) image instance \newinstance. + //! Map predefined palette on the scalar (indexed) image instance \newinstance. template - CImg get_map(const CImg& colormap, const unsigned int boundary_conditions=0) const { + CImg get_map(const CImg& palette, const unsigned int boundary_conditions=0) const { const ulongT whd = (ulongT)_width*_height*_depth, siz = size(), - cwhd = (ulongT)colormap._width*colormap._height*colormap._depth, + cwhd = (ulongT)palette._width*palette._height*palette._depth, cwhd2 = 2*cwhd; - CImg res(_width,_height,_depth,_spectrum*colormap._spectrum); - switch (colormap._spectrum) { + CImg res(_width,_height,_depth,_spectrum*palette._spectrum); + switch (palette._spectrum) { case 1 : { // Optimized for scalars switch (boundary_conditions) { @@ -32000,33 +33580,33 @@ namespace cimg_library_suffixed { cimg_pragma_openmp(parallel for cimg_openmp_if_size(size(),256)) for (longT off = 0; off<(longT)siz; ++off) { const ulongT ind = ((ulongT)_data[off])%cwhd2; - res[off] = colormap[ind& default_LUT256() { - static CImg colormap; + static CImg palette; cimg::mutex(8); - if (!colormap) { - colormap.assign(1,256,1,3); + if (!palette) { + palette.assign(1,256,1,3); for (unsigned int index = 0, r = 16; r<256; r+=32) for (unsigned int g = 16; g<256; g+=32) for (unsigned int b = 32; b<256; b+=64) { - colormap(0,index,0) = (Tuchar)r; - colormap(0,index,1) = (Tuchar)g; - colormap(0,index++,2) = (Tuchar)b; + palette(0,index,0) = (Tuchar)r; + palette(0,index,1) = (Tuchar)g; + palette(0,index++,2) = (Tuchar)b; } } cimg::mutex(8,0); - return colormap; + return palette; } - //! Return colormap \e "HSV", containing 256 colors entries in RGB. + //! Return palette \e "HSV", containing 256 colors entries in RGB. /** - \return The following \c 256x1x1x3 colormap is returned: + \return The following \c 256x1x1x3 palette is returned: \image html ref_colormap_hsv.jpg **/ static const CImg& HSV_LUT256() { - static CImg colormap; + static CImg palette; cimg::mutex(8); - if (!colormap) { + if (!palette) { CImg tmp(1,256,1,3,1); tmp.get_shared_channel(0).sequence(0,359); - colormap = tmp.HSVtoRGB(); + palette = tmp.HSVtoRGB(); } cimg::mutex(8,0); - return colormap; + return palette; } - //! Return colormap \e "lines", containing 256 colors entries in RGB. + //! Return palette \e "lines", containing 256 colors entries in RGB. /** - \return The following \c 256x1x1x3 colormap is returned: + \return The following \c 256x1x1x3 palette is returned: \image html ref_colormap_lines.jpg **/ static const CImg& lines_LUT256() { @@ -32483,91 +34063,91 @@ namespace cimg_library_suffixed { 158,77,166,210,77,89,210,0,24,202,150,186,0,255,20,97, 57,170,235,251,16,73,142,251,93,0,202,0,255,121,219,4, 73,219,8,162,206,16,219,93,117,0,255,8,130,174,223,45 }; - static const CImg colormap(pal,1,256,1,3,false); - return colormap; + static const CImg palette(pal,1,256,1,3,false); + return palette; } - //! Return colormap \e "hot", containing 256 colors entries in RGB. + //! Return palette \e "hot", containing 256 colors entries in RGB. /** - \return The following \c 256x1x1x3 colormap is returned: + \return The following \c 256x1x1x3 palette is returned: \image html ref_colormap_hot.jpg **/ static const CImg& hot_LUT256() { - static CImg colormap; + static CImg palette; cimg::mutex(8); - if (!colormap) { - colormap.assign(1,4,1,3,(T)0); - colormap[1] = colormap[2] = colormap[3] = colormap[6] = colormap[7] = colormap[11] = 255; - colormap.resize(1,256,1,3,3); + if (!palette) { + palette.assign(1,4,1,3,(T)0); + palette[1] = palette[2] = palette[3] = palette[6] = palette[7] = palette[11] = 255; + palette.resize(1,256,1,3,3); } cimg::mutex(8,0); - return colormap; + return palette; } - //! Return colormap \e "cool", containing 256 colors entries in RGB. + //! Return palette \e "cool", containing 256 colors entries in RGB. /** - \return The following \c 256x1x1x3 colormap is returned: + \return The following \c 256x1x1x3 palette is returned: \image html ref_colormap_cool.jpg **/ static const CImg& cool_LUT256() { - static CImg colormap; + static CImg palette; cimg::mutex(8); - if (!colormap) colormap.assign(1,2,1,3).fill((T)0,(T)255,(T)255,(T)0,(T)255,(T)255).resize(1,256,1,3,3); + if (!palette) palette.assign(1,2,1,3).fill((T)0,(T)255,(T)255,(T)0,(T)255,(T)255).resize(1,256,1,3,3); cimg::mutex(8,0); - return colormap; + return palette; } - //! Return colormap \e "jet", containing 256 colors entries in RGB. + //! Return palette \e "jet", containing 256 colors entries in RGB. /** - \return The following \c 256x1x1x3 colormap is returned: + \return The following \c 256x1x1x3 palette is returned: \image html ref_colormap_jet.jpg **/ static const CImg& jet_LUT256() { - static CImg colormap; + static CImg palette; cimg::mutex(8); - if (!colormap) { - colormap.assign(1,4,1,3,(T)0); - colormap[2] = colormap[3] = colormap[5] = colormap[6] = colormap[8] = colormap[9] = 255; - colormap.resize(1,256,1,3,3); + if (!palette) { + palette.assign(1,4,1,3,(T)0); + palette[2] = palette[3] = palette[5] = palette[6] = palette[8] = palette[9] = 255; + palette.resize(1,256,1,3,3); } cimg::mutex(8,0); - return colormap; + return palette; } - //! Return colormap \e "flag", containing 256 colors entries in RGB. + //! Return palette \e "flag", containing 256 colors entries in RGB. /** \return The following \c 256x1x1x3 colormap is returned: - \image html ref_colormap_flag.jpg + \image html ref_palette_flag.jpg **/ static const CImg& flag_LUT256() { - static CImg colormap; + static CImg palette; cimg::mutex(8); - if (!colormap) { - colormap.assign(1,4,1,3,(T)0); - colormap[0] = colormap[1] = colormap[5] = colormap[9] = colormap[10] = 255; - colormap.resize(1,256,1,3,0,2); + if (!palette) { + palette.assign(1,4,1,3,(T)0); + palette[0] = palette[1] = palette[5] = palette[9] = palette[10] = 255; + palette.resize(1,256,1,3,0,2); } cimg::mutex(8,0); - return colormap; + return palette; } - //! Return colormap \e "cube", containing 256 colors entries in RGB. + //! Return palette \e "cube", containing 256 colors entries in RGB. /** - \return The following \c 256x1x1x3 colormap is returned: + \return The following \c 256x1x1x3 palette is returned: \image html ref_colormap_cube.jpg **/ static const CImg& cube_LUT256() { - static CImg colormap; + static CImg palette; cimg::mutex(8); - if (!colormap) { - colormap.assign(1,8,1,3,(T)0); - colormap[1] = colormap[3] = colormap[5] = colormap[7] = - colormap[10] = colormap[11] = colormap[12] = colormap[13] = - colormap[20] = colormap[21] = colormap[22] = colormap[23] = 255; - colormap.resize(1,256,1,3,3); + if (!palette) { + palette.assign(1,8,1,3,(T)0); + palette[1] = palette[3] = palette[5] = palette[7] = + palette[10] = palette[11] = palette[12] = palette[13] = + palette[20] = palette[21] = palette[22] = palette[23] = 255; + palette.resize(1,256,1,3,3); } cimg::mutex(8,0); - return colormap; + return palette; } //! Convert pixel values from sRGB to RGB color spaces. @@ -33421,7 +35001,7 @@ namespace cimg_library_suffixed { case 3 : { // Mirror res.assign(sx,sy,sz,sc); const int w2 = 2*width(), h2 = 2*height(), d2 = 2*depth(), s2 = 2*spectrum(); - cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) cimg_openmp_if_size(res.size(),65536)) + cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) cimg_openmp_if_size(res.size(),1024*1024)) cimg_forXYZC(res,x,y,z,c) { const int mx = cimg::mod(x - xc,w2), my = cimg::mod(y - yc,h2), @@ -33440,7 +35020,7 @@ namespace cimg_library_suffixed { z0 = ((int)zc%depth()) - depth(), c0 = ((int)cc%spectrum()) - spectrum(), dx = width(), dy = height(), dz = depth(), dc = spectrum(); - cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) cimg_openmp_if_size(res.size(),65536)) + cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) cimg_openmp_if_size(res.size(),1024*1024)) for (int c = c0; c<(int)sc; c+=dc) for (int z = z0; z<(int)sz; z+=dz) for (int y = y0; y<(int)sy; y+=dy) @@ -33577,78 +35157,88 @@ namespace cimg_library_suffixed { case 2 : { bool instance_first = true; if (sx!=_width) { - CImg tmp(sx,_height,_depth,_spectrum,0); - for (unsigned int a = _width*sx, b = _width, c = sx, s = 0, t = 0; a; ) { - const unsigned int d = std::min(b,c); - a-=d; b-=d; c-=d; - cimg_forYZC(tmp,y,z,v) tmp(t,y,z,v)+=(Tfloat)(*this)(s,y,z,v)*d; - if (!b) { - cimg_forYZC(tmp,y,z,v) tmp(t,y,z,v)/=_width; - ++t; - b = _width; + if (sx>_width) get_resize(sx,_height,_depth,_spectrum,1).move_to(res); + else { + CImg tmp(sx,_height,_depth,_spectrum,0); + cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) + cimg_openmp_if(sx>=256 && _height*_depth*_spectrum>=256)) + cimg_forYZC(tmp,y,z,v) { + for (unsigned int a = _width*sx, b = _width, c = sx, s = 0, t = 0; a; ) { + const unsigned int d = std::min(b,c); + a-=d; b-=d; c-=d; + tmp(t,y,z,v)+=(Tfloat)(*this)(s,y,z,v)*d; + if (!b) { tmp(t++,y,z,v)/=_width; b = _width; } + if (!c) { ++s; c = sx; } + } } - if (!c) { ++s; c = sx; } + tmp.move_to(res); } - tmp.move_to(res); instance_first = false; } + if (sy!=_height) { - CImg tmp(sx,sy,_depth,_spectrum,0); - for (unsigned int a = _height*sy, b = _height, c = sy, s = 0, t = 0; a; ) { - const unsigned int d = std::min(b,c); - a-=d; b-=d; c-=d; - if (instance_first) - cimg_forXZC(tmp,x,z,v) tmp(x,t,z,v)+=(Tfloat)(*this)(x,s,z,v)*d; - else - cimg_forXZC(tmp,x,z,v) tmp(x,t,z,v)+=(Tfloat)res(x,s,z,v)*d; - if (!b) { - cimg_forXZC(tmp,x,z,v) tmp(x,t,z,v)/=_height; - ++t; - b = _height; + if (sy>_height) get_resize(sx,sy,_depth,_spectrum,1).move_to(res); + else { + CImg tmp(sx,sy,_depth,_spectrum,0); + cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) + cimg_openmp_if(sy>=256 && _width*_depth*_spectrum>=256)) + cimg_forXZC(tmp,x,z,v) { + for (unsigned int a = _height*sy, b = _height, c = sy, s = 0, t = 0; a; ) { + const unsigned int d = std::min(b,c); + a-=d; b-=d; c-=d; + if (instance_first) tmp(x,t,z,v)+=(Tfloat)(*this)(x,s,z,v)*d; + else tmp(x,t,z,v)+=(Tfloat)res(x,s,z,v)*d; + if (!b) { tmp(x,t++,z,v)/=_height; b = _height; } + if (!c) { ++s; c = sy; } + } } - if (!c) { ++s; c = sy; } + tmp.move_to(res); } - tmp.move_to(res); instance_first = false; } + if (sz!=_depth) { - CImg tmp(sx,sy,sz,_spectrum,0); - for (unsigned int a = _depth*sz, b = _depth, c = sz, s = 0, t = 0; a; ) { - const unsigned int d = std::min(b,c); - a-=d; b-=d; c-=d; - if (instance_first) - cimg_forXYC(tmp,x,y,v) tmp(x,y,t,v)+=(Tfloat)(*this)(x,y,s,v)*d; - else - cimg_forXYC(tmp,x,y,v) tmp(x,y,t,v)+=(Tfloat)res(x,y,s,v)*d; - if (!b) { - cimg_forXYC(tmp,x,y,v) tmp(x,y,t,v)/=_depth; - ++t; - b = _depth; + if (sz>_depth) get_resize(sx,sy,sz,_spectrum,1).move_to(res); + else { + CImg tmp(sx,sy,sz,_spectrum,0); + cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) + cimg_openmp_if(sz>=256 && _width*_height*_spectrum>=256)) + cimg_forXYC(tmp,x,y,v) { + for (unsigned int a = _depth*sz, b = _depth, c = sz, s = 0, t = 0; a; ) { + const unsigned int d = std::min(b,c); + a-=d; b-=d; c-=d; + if (instance_first) tmp(x,y,t,v)+=(Tfloat)(*this)(x,y,s,v)*d; + else tmp(x,y,t,v)+=(Tfloat)res(x,y,s,v)*d; + if (!b) { tmp(x,y,t++,v)/=_depth; b = _depth; } + if (!c) { ++s; c = sz; } + } } - if (!c) { ++s; c = sz; } + tmp.move_to(res); } - tmp.move_to(res); instance_first = false; } + if (sc!=_spectrum) { - CImg tmp(sx,sy,sz,sc,0); - for (unsigned int a = _spectrum*sc, b = _spectrum, c = sc, s = 0, t = 0; a; ) { - const unsigned int d = std::min(b,c); - a-=d; b-=d; c-=d; - if (instance_first) - cimg_forXYZ(tmp,x,y,z) tmp(x,y,z,t)+=(Tfloat)(*this)(x,y,z,s)*d; - else - cimg_forXYZ(tmp,x,y,z) tmp(x,y,z,t)+=(Tfloat)res(x,y,z,s)*d; - if (!b) { - cimg_forXYZ(tmp,x,y,z) tmp(x,y,z,t)/=_spectrum; - ++t; - b = _spectrum; + if (sc>_spectrum) get_resize(sx,sy,sz,sc,1).move_to(res); + else { + CImg tmp(sx,sy,sz,sc,0); + cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) + cimg_openmp_if(sc>=256 && _width*_height*_depth>=256)) + cimg_forXYZ(tmp,x,y,z) { + for (unsigned int a = _spectrum*sc, b = _spectrum, c = sc, s = 0, t = 0; a; ) { + const unsigned int d = std::min(b,c); + a-=d; b-=d; c-=d; + if (instance_first) tmp(x,y,z,t)+=(Tfloat)(*this)(x,y,z,s)*d; + else tmp(x,y,z,t)+=(Tfloat)res(x,y,z,s)*d; + if (!b) { tmp(x,y,z,t++)/=_spectrum; b = _spectrum; } + if (!c) { ++s; c = sc; } + } } - if (!c) { ++s; c = sc; } + tmp.move_to(res); } - tmp.move_to(res); instance_first = false; } + } break; // Linear interpolation. @@ -33677,7 +35267,8 @@ namespace cimg_library_suffixed { *(poff++) = (unsigned int)curr - (unsigned int)old; } } - cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) cimg_openmp_if_size(resx.size(),65536)) + cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) + cimg_openmp_if(resx._width>=256 && resx._height*resx._depth*resx._spectrum>=256)) cimg_forYZC(resx,y,z,c) { const T *ptrs = data(0,y,z,c), *const ptrsmax = ptrs + _width - 1; T *ptrd = resx.data(0,y,z,c); @@ -33712,7 +35303,8 @@ namespace cimg_library_suffixed { *(poff++) = sx*((unsigned int)curr - (unsigned int)old); } } - cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) cimg_openmp_if_size(resy.size(),65536)) + cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) + cimg_openmp_if(resy._height>=256 && resy._width*resy._depth*resy._spectrum>=256)) cimg_forXZC(resy,x,z,c) { const T *ptrs = resx.data(x,0,z,c), *const ptrsmax = ptrs + (_height - 1)*sx; T *ptrd = resy.data(x,0,z,c); @@ -33751,7 +35343,8 @@ namespace cimg_library_suffixed { *(poff++) = sxy*((unsigned int)curr - (unsigned int)old); } } - cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) cimg_openmp_if_size(resz.size(),65536)) + cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) + cimg_openmp_if(resz._depth>=256 && resz._width*resz._height*resz._spectrum>=256)) cimg_forXYC(resz,x,y,c) { const T *ptrs = resy.data(x,y,0,c), *const ptrsmax = ptrs + (_depth - 1)*sxy; T *ptrd = resz.data(x,y,0,c); @@ -33790,7 +35383,8 @@ namespace cimg_library_suffixed { *(poff++) = sxyz*((unsigned int)curr - (unsigned int)old); } } - cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) cimg_openmp_if_size(resc.size(),65536)) + cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) + cimg_openmp_if(resc._spectrum>=256 && resc._width*resc._height*resc._depth>=256)) cimg_forXYZ(resc,x,y,z) { const T *ptrs = resz.data(x,y,z,0), *const ptrsmax = ptrs + (_spectrum - 1)*sxyz; T *ptrd = resc.data(x,y,z,0); @@ -33905,7 +35499,8 @@ namespace cimg_library_suffixed { *(poff++) = (unsigned int)curr - (unsigned int)old; } } - cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) cimg_openmp_if_size(resx.size(),65536)) + cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) + cimg_openmp_if(resx._width>=256 && resx._height*resx._depth*resx._spectrum>=256)) cimg_forYZC(resx,y,z,c) { const T *const ptrs0 = data(0,y,z,c), *ptrs = ptrs0, *const ptrsmax = ptrs + (_width - 2); T *ptrd = resx.data(0,y,z,c); @@ -33947,7 +35542,8 @@ namespace cimg_library_suffixed { *(poff++) = sx*((unsigned int)curr - (unsigned int)old); } } - cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) cimg_openmp_if_size(resy.size(),65536)) + cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) + cimg_openmp_if(resy._height>=256 && resy._width*resy._depth*resy._spectrum>=256)) cimg_forXZC(resy,x,z,c) { const T *const ptrs0 = resx.data(x,0,z,c), *ptrs = ptrs0, *const ptrsmax = ptrs + (_height - 2)*sx; T *ptrd = resy.data(x,0,z,c); @@ -33992,7 +35588,8 @@ namespace cimg_library_suffixed { *(poff++) = sxy*((unsigned int)curr - (unsigned int)old); } } - cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) cimg_openmp_if_size(resz.size(),65536)) + cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) + cimg_openmp_if(resz._depth>=256 && resz._width*resz._height*resz._spectrum>=256)) cimg_forXYC(resz,x,y,c) { const T *const ptrs0 = resy.data(x,y,0,c), *ptrs = ptrs0, *const ptrsmax = ptrs + (_depth - 2)*sxy; T *ptrd = resz.data(x,y,0,c); @@ -34037,7 +35634,8 @@ namespace cimg_library_suffixed { *(poff++) = sxyz*((unsigned int)curr - (unsigned int)old); } } - cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) cimg_openmp_if_size(resc.size(),65536)) + cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) + cimg_openmp_if(resc._spectrum>=256 && resc._width*resc._height*resc._depth>=256)) cimg_forXYZ(resc,x,y,z) { const T *const ptrs0 = resz.data(x,y,z,0), *ptrs = ptrs0, *const ptrsmax = ptrs + (_spectrum - 2)*sxyz; T *ptrd = resc.data(x,y,z,0); @@ -34093,7 +35691,8 @@ namespace cimg_library_suffixed { *(poff++) = (unsigned int)curr - (unsigned int)old; } } - cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) cimg_openmp_if_size(resx.size(),65536)) + cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) + cimg_openmp_if(resx._width>=256 && resx._height*resx._depth*resx._spectrum>=256)) cimg_forYZC(resx,y,z,c) { const T *const ptrs0 = data(0,y,z,c), *ptrs = ptrs0, *const ptrsmin = ptrs0 + 1, *const ptrsmax = ptrs0 + (_width - 2); @@ -34141,7 +35740,8 @@ namespace cimg_library_suffixed { *(poff++) = sx*((unsigned int)curr - (unsigned int)old); } } - cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) cimg_openmp_if_size(resy.size(),65536)) + cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) + cimg_openmp_if(resy._height>=256 && resy._width*resy._depth*resy._spectrum>=256)) cimg_forXZC(resy,x,z,c) { const T *const ptrs0 = resx.data(x,0,z,c), *ptrs = ptrs0, *const ptrsmin = ptrs0 + sx, *const ptrsmax = ptrs0 + (_height - 2)*sx; @@ -34192,7 +35792,8 @@ namespace cimg_library_suffixed { *(poff++) = sxy*((unsigned int)curr - (unsigned int)old); } } - cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) cimg_openmp_if_size(resz.size(),65536)) + cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) + cimg_openmp_if(resz._depth>=256 && resz._width*resz._height*resz._spectrum>=256)) cimg_forXYC(resz,x,y,c) { const T *const ptrs0 = resy.data(x,y,0,c), *ptrs = ptrs0, *const ptrsmin = ptrs0 + sxy, *const ptrsmax = ptrs0 + (_depth - 2)*sxy; @@ -34243,7 +35844,8 @@ namespace cimg_library_suffixed { *(poff++) = sxyz*((unsigned int)curr - (unsigned int)old); } } - cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) cimg_openmp_if_size(resc.size(),65536)) + cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) + cimg_openmp_if(resc._spectrum>=256 && resc._width*resc._height*resc._depth>=256)) cimg_forXYZ(resc,x,y,z) { const T *const ptrs0 = resz.data(x,y,z,0), *ptrs = ptrs0, *const ptrsmin = ptrs0 + sxyz, *const ptrsmax = ptrs + (_spectrum - 2)*sxyz; @@ -34295,6 +35897,7 @@ namespace cimg_library_suffixed { \param src Reference image used for dimensions. \param interpolation_type Interpolation method. \param boundary_conditions Boundary conditions. + Can be { 0=dirichlet | 1=neumann | 2=periodic | 3=mirror }. \param centering_x Set centering type (only if \p interpolation_type=0). \param centering_y Set centering type (only if \p interpolation_type=0). \param centering_z Set centering type (only if \p interpolation_type=0). @@ -34324,6 +35927,7 @@ namespace cimg_library_suffixed { \param disp Reference display window used for dimensions. \param interpolation_type Interpolation method. \param boundary_conditions Boundary conditions. + Can be { 0=dirichlet | 1=neumann | 2=periodic | 3=mirror }. \param centering_x Set centering type (only if \p interpolation_type=0). \param centering_y Set centering type (only if \p interpolation_type=0). \param centering_z Set centering type (only if \p interpolation_type=0). @@ -34582,7 +36186,8 @@ namespace cimg_library_suffixed { \param delta_y Amount of displacement along the Y-axis. \param delta_z Amount of displacement along the Z-axis. \param delta_c Amount of displacement along the C-axis. - \param boundary_conditions Boundary conditions. Can be { 0=dirichlet | 1=neumann | 2=periodic | 3=mirror }. + \param boundary_conditions Boundary conditions. + Can be { 0=dirichlet | 1=neumann | 2=periodic | 3=mirror }. **/ CImg& shift(const int delta_x, const int delta_y=0, const int delta_z=0, const int delta_c=0, const unsigned int boundary_conditions=0) { @@ -34811,11 +36416,11 @@ namespace cimg_library_suffixed { if (is_empty() || !axes_order) return CImg(*this,false); CImg res; const T* ptrs = _data; - unsigned char s_code[4] = { 0,1,2,3 }, n_code[4] = { 0 }; + unsigned char s_code[4] = { 0,1,2,3 }, n_code[4] = {}; for (unsigned int l = 0; axes_order[l]; ++l) { int c = cimg::lowercase(axes_order[l]); if (l>=4 || (c!='x' && c!='y' && c!='z' && c!='c')) { *s_code = 4; break; } - else { ++n_code[c%=4]; s_code[l] = c; } + else { ++n_code[c%=4]; s_code[l] = (unsigned char)c; } } if (*axes_order && *s_code<4 && *n_code<=1 && n_code[1]<=1 && n_code[2]<=1 && n_code[3]<=1) { const unsigned int code = (s_code[0]<<12) | (s_code[1]<<8) | (s_code[2]<<4) | (s_code[3]); @@ -35052,7 +36657,7 @@ namespace cimg_library_suffixed { \param angle Rotation angle, in degrees. \param interpolation Type of interpolation. Can be { 0=nearest | 1=linear | 2=cubic }. \param boundary_conditions Boundary conditions. - Can be { 0=dirichlet | 1=neumann | 2=periodic | 3=mirror }. + Can be { 0=dirichlet | 1=neumann | 2=periodic | 3=mirror }. \note The size of the image is modified. **/ CImg& rotate(const float angle, const unsigned int interpolation=1, @@ -35260,7 +36865,7 @@ namespace cimg_library_suffixed { \param angle Rotation angle, in degrees. \param interpolation Type of interpolation. Can be { 0=nearest | 1=linear | 2=cubic }. \param boundary_conditions Boundary conditions. - Can be { 0=dirichlet | 1=neumann | 2=periodic | 3=mirror }. + Can be { 0=dirichlet | 1=neumann | 2=periodic | 3=mirror }. \note Most of the time, size of the image is modified. **/ CImg rotate(const float u, const float v, const float w, const float angle, @@ -35309,7 +36914,8 @@ namespace cimg_library_suffixed { \param cy Y-coordinate of the rotation center. \param cz Z-coordinate of the rotation center. \param interpolation Type of interpolation. Can be { 0=nearest | 1=linear | 2=cubic | 3=mirror }. - \param boundary_conditions Boundary conditions. Can be { 0=dirichlet | 1=neumann | 2=periodic }. + \param boundary_conditions Boundary conditions. + Can be { 0=dirichlet | 1=neumann | 2=periodic }. \note Most of the time, size of the image is modified. **/ CImg rotate(const float u, const float v, const float w, const float angle, @@ -37198,7 +38804,7 @@ namespace cimg_library_suffixed { \param axis Splitting axis. Can be { 'x' | 'y' | 'z' | 'c' }. \param nb Number of split parts. \note - - If \c nb==0, instance image is split into blocs of egal values along the specified axis. + - If \c nb==0, instance image is split into blocs of equal values along the specified axis. - If \c nb<=0, instance image is split into blocs of -\c nb pixel wide. - If \c nb>0, instance image is split into \c nb blocs. **/ @@ -37207,7 +38813,7 @@ namespace cimg_library_suffixed { if (is_empty()) return res; const char _axis = cimg::lowercase(axis); - if (nb<0) { // Split by bloc size + if (nb<0) { // Split by block size const unsigned int dp = (unsigned int)(nb?-nb:1); switch (_axis) { case 'x': { @@ -37297,7 +38903,7 @@ namespace cimg_library_suffixed { } } } - } else { // Split by egal values according to specified axis + } else { // Split by equal values according to specified axis T current = *_data; switch (_axis) { case 'x' : { @@ -37415,7 +39021,7 @@ namespace cimg_library_suffixed { if ((Tt)(*this)(i)==(Tt)*values) { i1 = i; j = 0; while (i<_width && (Tt)(*this)(i)==(Tt)values[j]) { ++i; if (++j>=vsiz) j = 0; } - i-=j; + i-=(unsigned int)j; if (i>i1) { if (i1>i0) get_columns(i0,i1 - 1).move_to(res); if (keep_values) get_columns(i1,i - 1).move_to(res); @@ -37431,7 +39037,7 @@ namespace cimg_library_suffixed { if ((Tt)(*this)(0,i)==(Tt)*values) { i1 = i; j = 0; while (i<_height && (Tt)(*this)(0,i)==(Tt)values[j]) { ++i; if (++j>=vsiz) j = 0; } - i-=j; + i-=(unsigned int)j; if (i>i1) { if (i1>i0) get_rows(i0,i1 - 1).move_to(res); if (keep_values) get_rows(i1,i - 1).move_to(res); @@ -37447,7 +39053,7 @@ namespace cimg_library_suffixed { if ((Tt)(*this)(0,0,i)==(Tt)*values) { i1 = i; j = 0; while (i<_depth && (Tt)(*this)(0,0,i)==(Tt)values[j]) { ++i; if (++j>=vsiz) j = 0; } - i-=j; + i-=(unsigned int)j; if (i>i1) { if (i1>i0) get_slices(i0,i1 - 1).move_to(res); if (keep_values) get_slices(i1,i - 1).move_to(res); @@ -37463,7 +39069,7 @@ namespace cimg_library_suffixed { if ((Tt)(*this)(0,0,0,i)==(Tt)*values) { i1 = i; j = 0; while (i<_spectrum && (Tt)(*this)(0,0,0,i)==(Tt)values[j]) { ++i; if (++j>=vsiz) j = 0; } - i-=j; + i-=(unsigned int)j; if (i>i1) { if (i1>i0) get_channels(i0,i1 - 1).move_to(res); if (keep_values) get_channels(i1,i - 1).move_to(res); @@ -37480,7 +39086,7 @@ namespace cimg_library_suffixed { if ((Tt)(*this)[i]==(Tt)*values) { i1 = i; j = 0; while (i=vsiz) j = 0; } - i-=j; + i-=(unsigned int)j; if (i>i1) { if (i1>i0) CImg(_data + i0,1,(unsigned int)(i1 - i0)).move_to(res); if (keep_values) CImg(_data + i1,1,(unsigned int)(i - i1)).move_to(res); @@ -37542,22 +39148,24 @@ namespace cimg_library_suffixed { \param kernel = the correlation kernel. \param boundary_conditions Boundary condition. Can be { 0=dirichlet | 1=neumann | 2=periodic | 3=mirror }. \param is_normalized = enable local normalization. - \param channel mode Channel processing mode. Can be { 0=sum inputs | 1=one-for-one | 2=expand } - \param xcenter X-coordinate of the kernel center (~0U means 'centered'). + \param channel_mode Channel processing mode. + Can be { 0=all | 1=one for one (default) | 2=partial sum | 3=full sum }. + \param xcenter X-coordinate of the kernel center (~0U>>1 means 'centered'). + \param ycenter Y-coordinate of the kernel center (~0U>>1 means 'centered'). + \param zcenter Z-coordinate of the kernel center (~0U>>1 means 'centered'). \param xstart Starting X-coordinate of the instance image. - \param xend Ending X-coordinate of the instance image. - \param xstride Stride along the X-axis. - \param xdilation Dilation along the X-axis. - \param ycenter Y-coordinate of the kernel center (~0U means 'centered'). \param ystart Starting Y-coordinate of the instance image. - \param yend Ending Y-coordinate of the instance image. - \param ystride Stride along the Y-axis. - \param ydilation Dilation along the Y-axis. - \param zcenter Z-coordinate of the kernel center (~0U means 'centered'). \param zstart Starting Z-coordinate of the instance image. + \param xend Ending X-coordinate of the instance image. + \param yend Ending Y-coordinate of the instance image. \param zend Ending Z-coordinate of the instance image. + \param xstride Stride along the X-axis. + \param ystride Stride along the Y-axis. \param zstride Stride along the Z-axis. + \param xdilation Dilation along the X-axis. + \param ydilation Dilation along the Y-axis. \param zdilation Dilation along the Z-axis. + \param interpolation_type Can be { false=nearest | true=linear }. \note - The correlation of the image instance \p *this by the kernel \p kernel is defined to be: res(x,y,z) = sum_{i,j,k} (*this)(\alpha_x\;x + \beta_x\;(i - c_x),\alpha_y\;y + \beta_y\;(j - @@ -37566,43 +39174,56 @@ namespace cimg_library_suffixed { template CImg& correlate(const CImg& kernel, const unsigned int boundary_conditions=1, const bool is_normalized=false, const unsigned int channel_mode=1, - const unsigned int xcenter=~0U, const unsigned int ycenter=~0U, const unsigned int zcenter=~0U, - const unsigned int xstart=0, const unsigned int ystart=0, const unsigned zstart=0, - const unsigned int xend=~0U, const unsigned int yend=~0U, const unsigned int zend=~0U, + const int xcenter=(int)(~0U>>1), + const int ycenter=(int)(~0U>>1), + const int zcenter=(int)(~0U>>1), + const int xstart=0, + const int ystart=0, + const int zstart=0, + const int xend=(int)(~0U>>1), + const int yend=(int)(~0U>>1), + const int zend=(int)(~0U>>1), const float xstride=1, const float ystride=1, const float zstride=1, - const float xdilation=1, const float ydilation=1, const float zdilation=1) { + const float xdilation=1, const float ydilation=1, const float zdilation=1, + const bool interpolation_type=false) { if (is_empty() || !kernel) return *this; return get_correlate(kernel,boundary_conditions,is_normalized,channel_mode, xcenter,ycenter,zcenter,xstart,ystart,zstart,xend,yend,zend, - xstride,ystride,zstride,xdilation,ydilation,zdilation).move_to(*this); + xstride,ystride,zstride,xdilation,ydilation,zdilation, + interpolation_type).move_to(*this); } template CImg<_cimg_Ttfloat> get_correlate(const CImg& kernel, const unsigned int boundary_conditions=1, const bool is_normalized=false, const unsigned int channel_mode=1, - const unsigned int xcenter=~0U, const unsigned int ycenter=~0U, - const unsigned int zcenter=~0U, - const unsigned int xstart=0, const unsigned int ystart=0, const unsigned zstart=0, - const unsigned int xend=~0U, const unsigned int yend=~0U, - const unsigned int zend=~0U, + const int xcenter=(int)(~0U>>1), + const int ycenter=(int)(~0U>>1), + const int zcenter=(int)(~0U>>1), + const int xstart=0, + const int ystart=0, + const int zstart=0, + const int xend=(int)(~0U>>1), + const int yend=(int)(~0U>>1), + const int zend=(int)(~0U>>1), const float xstride=1, const float ystride=1, const float zstride=1, - const float xdilation=1, const float ydilation=1, const float zdilation=1) const { + const float xdilation=1, const float ydilation=1, const float zdilation=1, + const bool interpolation_type=false) const { return _correlate(kernel,boundary_conditions,is_normalized,channel_mode, xcenter,ycenter,zcenter,xstart,ystart,zstart,xend,yend,zend, - xstride,ystride,zstride,xdilation,ydilation,zdilation,false); + xstride,ystride,zstride,xdilation,ydilation,zdilation, + interpolation_type,false); } //! Correlate image by a kernel \newinstance. template CImg<_cimg_Ttfloat> _correlate(const CImg& kernel, const unsigned int boundary_conditions, const bool is_normalized, const unsigned int channel_mode, - const unsigned int xcenter, const unsigned int ycenter, const unsigned int zcenter, - const unsigned int xstart, const unsigned int ystart, const unsigned zstart, - const unsigned int xend, const unsigned int yend, const unsigned int zend, + const int xcenter, const int ycenter, const int zcenter, + const int xstart, const int ystart, const int zstart, + const int xend, const int yend, const int zend, const float xstride, const float ystride, const float zstride, const float xdilation, const float ydilation, const float zdilation, - const bool is_convolve) const { - if (is_empty() || !kernel) return *this; + const bool interpolation_type, const bool is_convolve) const { typedef _cimg_Ttfloat Ttfloat; CImg res; _cimg_abort_init_openmp; @@ -37610,7 +39231,7 @@ namespace cimg_library_suffixed { if (xstart>xend || ystart>yend || zstart>zend) throw CImgArgumentException(_cimg_instance - "%s(): Invalid xyz-start/end arguments (start = (%u,%u,%u), end = (%u,%u,%u)).", + "%s(): Invalid xyz-start/end arguments (start = (%d,%d,%d), end = (%d,%d,%d)).", cimg_instance, is_convolve?"convolve":"correlate", xstart,ystart,zstart,xend,yend,zend); @@ -37620,392 +39241,483 @@ namespace cimg_library_suffixed { cimg_instance, is_convolve?"convolve":"correlate", xstride,ystride,zstride); - const int - _xstart = (int)std::min(xstart,_width - 1), - _ystart = (int)std::min(ystart,_height - 1), - _zstart = (int)std::min(zstart,_depth - 1), - _xend = (int)std::min(xend,_width - 1), - _yend = (int)std::min(yend,_height - 1), - _zend = (int)std::min(zend,_depth - 1), - nwidth = 1 + (int)std::floor((_xend - _xstart)/xstride), - nheight = 1 + (int)std::floor((_yend - _ystart)/ystride), - ndepth = 1 + (int)std::floor((_zend + _zstart)/zstride), - _xstride = (int)cimg::round(xstride), - _ystride = (int)cimg::round(ystride), - _zstride = (int)cimg::round(zstride); - - const ulongT - res_whd = (ulongT)nwidth*nheight*ndepth, - res_size = res_whd*res._spectrum; - const bool - is_inner_parallel = res_whd>=(cimg_openmp_sizefactor)*32768, - is_outer_parallel = res_size>=(cimg_openmp_sizefactor)*32768; - cimg::unused(is_inner_parallel,is_outer_parallel); + if (is_empty() || !kernel) return *this; int - _xcenter = xcenter==~0U?kernel.width()/2 - 1 + (kernel.width()%2):(int)std::min(xcenter,kernel._width - 1), - _ycenter = ycenter==~0U?kernel.height()/2 - 1 + (kernel.height()%2):(int)std::min(ycenter,kernel._height - 1), - _zcenter = zcenter==~0U?kernel.depth()/2 - 1 + (kernel.depth()%2):(int)std::min(zcenter,kernel._depth - 1), - _xdilation = (int)cimg::round(xdilation), - _ydilation = (int)cimg::round(ydilation), - _zdilation = (int)cimg::round(zdilation); - - const bool is_int_stride_dilation = - xstride==_xstride && ystride==_ystride && zstride==_zstride && - xdilation==_xdilation && ydilation==_ydilation && zdilation==_zdilation; + _xcenter = xcenter==(int)(~0U>>1)?kernel.width()/2 - 1 + (kernel.width()%2):xcenter, + _ycenter = ycenter==(int)(~0U>>1)?kernel.height()/2 - 1 + (kernel.height()%2):ycenter, + _zcenter = zcenter==(int)(~0U>>1)?kernel.depth()/2 - 1 + (kernel.depth()%2):zcenter; + float _xdilation = xdilation, _ydilation = ydilation, _zdilation = zdilation; CImg _kernel; if (is_convolve) { // If convolution, go back to correlation - _kernel = CImg(kernel._data,kernel.size()/kernel._spectrum,1,1,kernel._spectrum,true). - get_mirror('x').resize(kernel,-1); - _xcenter = kernel.width() - 1 - _xcenter; - _ycenter = kernel.height() - 1 - _ycenter; - _zcenter = kernel.depth() - 1 - _zcenter; + if (kernel.size()/kernel.spectrum()<=27) { + _kernel = CImg(kernel._data,kernel.size()/kernel._spectrum,1,1,kernel._spectrum,true). + get_mirror('x').resize(kernel,-1); + _xcenter = kernel.width() - 1 - _xcenter; + _ycenter = kernel.height() - 1 - _ycenter; + _zcenter = kernel.depth() - _zcenter - 1; + } else { _kernel = kernel.get_shared(); _xdilation*=-1; _ydilation*=-1; _zdilation*=-1; } } else _kernel = kernel.get_shared(); - if (_kernel._width==_kernel._height && _kernel._width>1 && _kernel._height>1 && - ((_kernel._depth==1 && _kernel._width<=5) || (_kernel._depth==_kernel._width && _kernel._width<=3)) && - boundary_conditions<=1 && channel_mode && - _xcenter==_kernel.width()/2 - 1 + (_kernel.width()%2) && - _ycenter==_kernel.height()/2 - 1 + (_kernel.height()%2) && - _zcenter==_kernel.depth()/2 - 1 + (_kernel.depth()%2) && - is_int_stride_dilation && _xdilation>=0 && _ydilation>=0 && _zdilation>=0) { + const int + _xend = xend==(int)(~0U>>1)?width() - 1:xend, + _yend = yend==(int)(~0U>>1)?height() - 1:yend, + _zend = zend==(int)(~0U>>1)?depth() - 1:zend, + i_xstride = (int)cimg::round(xstride), + i_ystride = (int)cimg::round(ystride), + i_zstride = (int)cimg::round(zstride), + i_xdilation = (int)cimg::round(_xdilation), + i_ydilation = (int)cimg::round(_ydilation), + i_zdilation = (int)cimg::round(_zdilation), + res_width = _xend - xstart + 1, + res_height = _yend - ystart + 1, + res_depth = _zend - zstart + 1, + smin = std::min(spectrum(),_kernel.spectrum()), + smax = std::max(spectrum(),_kernel.spectrum()), + cend = !channel_mode?spectrum()*_kernel.spectrum():smax; + const ulongT + res_wh = (ulongT)res_width*res_height, + res_whd = res_wh*res_depth; - // Optimized versions for centered 2x2, 3x3, 4x4, 5x5, 2x2x2 and 3x3x3 kernels. - const int dw = 1 - (_kernel.width()%2), dh = 1 - (_kernel.height()%2), dd = 1 - (_kernel.depth()%2); - if (dw || dh || dd) // Force kernel size to be odd - _kernel.get_resize(_kernel.width() + dw,_kernel.height() + dh,_kernel.depth() + dd,_kernel.spectrum(), - 0,0,1,1,1).move_to(_kernel.assign()); + if (!res_whd) return CImg(); + res.assign(res_width,res_height,res_depth, + !channel_mode?_spectrum*_kernel._spectrum: + channel_mode==1?smax: + channel_mode==2?(int)std::ceil((float)smax/smin):1); + if (channel_mode>=2) res.fill(0); - if (!boundary_conditions) { // Dirichlet -> Add a 1px zero border, then use _correlate() with Neumann - const int - dx = _kernel._width==1?0:1, - dy = _kernel._height==1?0:1, - dz = _kernel._depth==1?0:1; - return get_crop(-dx,-dy,-dz,width() - 1 + dx,height() - 1 + dy,depth() - 1 + dz). - _correlate(_kernel,true,is_normalized,channel_mode,_xcenter,_ycenter,_zcenter, - _xstart + dx,_ystart + dy,_zstart + dz,_xend + dx,_yend + dy,_zend + dz, - xstride,ystride,zstride,xdilation,ydilation,zdilation,false); + const ulongT res_siz = res_whd*res._spectrum; + const bool +#if cimg_use_openmp==1 + is_master_thread = !omp_get_thread_num(), +#else + is_master_thread = true, +#endif + is_outer_parallel = is_master_thread && + (res._spectrum>=cimg::nb_cpus() || (res_siz<=(cimg_openmp_sizefactor)*32768 && res._spectrum>1)), + is_inner_parallel = is_master_thread && + (!is_outer_parallel && res_whd>=(cimg_openmp_sizefactor)*32768), + is_int_stride_dilation = xstride==i_xstride && ystride==i_ystride && zstride==i_zstride && + _xdilation==i_xdilation && _ydilation==i_ydilation && _zdilation==i_zdilation; + cimg::unused(is_inner_parallel,is_outer_parallel); + const int + w = width(), h = height(), d = depth(), + w1 = w - 1, h1 = h - 1, d1 = d - 1, + w2 = 2*w, h2 = 2*h, d2 = 2*d; + const ulongT wh = (ulongT)w*h, whd = wh*d; - } else { // Neumann boundaries - res.assign(nwidth,nheight,ndepth,std::max(_spectrum,_kernel._spectrum)); + // Reshape kernel to enable optimizations for a few cases. + if (boundary_conditions==1 && + _kernel._width>1 && _kernel._height>1 && + ((_kernel._depth==1 && _kernel._width<=5 && _kernel._height<=5) || + (_kernel._depth<=3 && _kernel._width<=3 && _kernel._height<=3)) && + xstart>=0 && ystart>=0 && zstart>=0 && + _xend=0 && i_ydilation>=0 && i_zdilation>=0) { + const unsigned int M = cimg::max(_kernel._width,_kernel._height,_kernel._depth); + _kernel.assign(_kernel.get_resize(M + 1 - (M%2),M + 1 - (M%2),_kernel._depth>1?M + 1 - (M%2):1,-100, + 0,0, + 1,1,1),false); + _xcenter = _ycenter = (int)M/2; + if (_kernel._depth>1) _ycenter = (int)M/2; + } - switch (_kernel._depth) { - case 3 : { // 3x3x3 centered kernel - cimg_forC(res,c) { - cimg_abort_test; + // Optimized version for a few particular cases (3x3, 5x5 and 3x3x3 kernels, with a few other conditions). + if (boundary_conditions==1 && + _kernel._width==_kernel._height && + ((_kernel._depth==1 && (_kernel._width==3 || _kernel._width==5)) || + (_kernel._depth==_kernel._width && _kernel._width==3)) && + _xcenter==_kernel.width()/2 && _ycenter==_kernel.height()/2 && _zcenter==_kernel.depth()/2 && + xstart>=0 && ystart>=0 && zstart>=0 && + _xend=0 && i_ydilation>=0 && i_zdilation>=0) { + + switch (_kernel._depth) { + case 3 : { // 3x3x3 centered kernel + cimg_pragma_openmp(parallel for cimg_openmp_if(is_outer_parallel)) + for (int c = 0; c I = get_shared_channel(c%_spectrum); + const CImg K = _kernel.get_shared_channel(!channel_mode?c/_spectrum:c%_kernel._spectrum); + CImg _resu = channel_mode<=1?res.get_shared_channel(c): + CImg(res.width(),res.height(),res.depth(),1); + if (is_normalized) { + const Ttfloat M = (Ttfloat)K.magnitude(2), M2 = M*M; + cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) cimg_openmp_if(is_inner_parallel)) + cimg_forXYZ(res,X,Y,Z) { + const int + x = xstart + X, y = ystart + Y, z = zstart + Z, + px = x - i_xdilation>0?x - i_xdilation:0, nx = x + i_xdilation0?y - i_ydilation:0, ny = y + i_ydilation0?z - i_zdilation:0, nz = z + i_zdilation0?x - i_xdilation:0, nx = x + i_xdilation0?y - i_ydilation:0, ny = y + i_ydilation0?z - i_zdilation:0, nz = z + i_zdilation I = get_shared_channel(c%_spectrum); - const CImg K = _kernel.get_shared_channel(c%kernel._spectrum); - const int w1 = I.width() - 1, h1 = I.height() - 1, d1 = I.depth() - 1; - CImg _res = res.get_shared_channel(c); + const CImg K = _kernel.get_shared_channel(!channel_mode?c/_spectrum:c%_kernel._spectrum); + CImg _resu = channel_mode<=1?res.get_shared_channel(c): + CImg(res.width(),res.height(),res.depth(),1); if (is_normalized) { const Ttfloat M = (Ttfloat)K.magnitude(2), M2 = M*M; - cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) cimg_openmp_if_size(_res.size(),16384)) - cimg_forXYZ(res,X,Y,Z) { + cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) cimg_openmp_if(is_inner_parallel)) + cimg_forXYZ(res,X,Y,z) { const int - x = _xstart + _xstride*X, y = _ystart + _ystride*Y, z = _zstart + _zstride*Z, - px = x - _xdilation>0?x - _xdilation:0, nx = x + _xdilation0?y - _ydilation:0, ny = y + _ydilation0?z - _zdilation:0, nz = z + _zdilation0?x - i_xdilation:0, bx = px - i_xdilation>0?px - i_xdilation:0, + nx = x + i_xdilation0?y - i_ydilation:0, by = py - i_ydilation>0?py - i_ydilation:0, + ny = y + i_ydilation0?x - _xdilation:0, nx = x + _xdilation0?y - _ydilation:0, ny = y + _ydilation0?z - _zdilation:0, nz = z + _zdilation0?x - i_xdilation:0, bx = px - i_xdilation>0?px - i_xdilation:0, + nx = x + i_xdilation0?y - i_ydilation:0, by = py - i_ydilation>0?py - i_ydilation:0, + ny = y + i_ydilation I = get_shared_channel(c%_spectrum); - const CImg K = _kernel.get_shared_channel(c%kernel._spectrum); - const int w1 = I.width() - 1, h1 = I.height() - 1; - CImg _res = res.get_shared_channel(c); - if (is_normalized) { - const Ttfloat M = (Ttfloat)K.magnitude(2), M2 = M*M; - cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) cimg_openmp_if_size(_res.size(),16384)) + case 3 : { // 3x3 centered kernel + cimg_pragma_openmp(parallel for cimg_openmp_if(is_outer_parallel)) + for (int c = 0; c I = get_shared_channel(c%_spectrum); + const CImg K = _kernel.get_shared_channel(!channel_mode?c/_spectrum:c%_kernel._spectrum); + CImg _resu = channel_mode<=1?res.get_shared_channel(c): + CImg(res.width(),res.height(),res.depth(),1); + if (is_normalized) { + const Ttfloat M = (Ttfloat)K.magnitude(2), M2 = M*M; + cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) cimg_openmp_if(is_inner_parallel)) cimg_forXYZ(res,X,Y,z) { - const int - x = _xstart + _xstride*X, y = _ystart + _ystride*Y, - px = x - _xdilation>0?x - _xdilation:0, bx = px - _xdilation>0?px - _xdilation:0, - nx = x + _xdilation0?y - _ydilation:0, by = py - _ydilation>0?py - _ydilation:0, - ny = y + _ydilation0?x - _xdilation:0, bx = px - _xdilation>0?px - _xdilation:0, - nx = x + _xdilation0?y - _ydilation:0, by = py - _ydilation>0?py - _ydilation:0, - ny = y + _ydilation0?x - i_xdilation:0, nx = x + i_xdilation0?y - i_ydilation:0, ny = y + i_ydilation0?x - i_xdilation:0, nx = x + i_xdilation0?y - i_ydilation:0, ny = y + i_ydilation I = get_shared_channel(c%_spectrum); - const CImg K = _kernel.get_shared_channel(c%kernel._spectrum); - CImg _res = res.get_shared_channel(c); - const int w1 = I.width() - 1, h1 = I.height() - 1; - if (is_normalized) { - const Ttfloat M = (Ttfloat)K.magnitude(2), M2 = M*M; - cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) cimg_openmp_if_size(_res.size(),16384)) - cimg_forXYZ(res,X,Y,z) { - const int - x = _xstart + _xstride*X, y = _ystart + _ystride*Y, - px = x - _xdilation>0?x - _xdilation:0, nx = x + _xdilation0?y - _ydilation:0, ny = y + _ydilation0?x - _xdilation:0, nx = x + _xdilation0?y - _ydilation:0, ny = y + _ydilation=0 && ystart>=0 && zstart>=0 && + _xend res0 = res.get_shared_channel(0); - for (int c = 1; c I = get_crop(xstart,ystart,zstart,c%_spectrum,_xend,_yend,_zend,c%_spectrum); + if (valK!=1) I*=valK; + if (is_normalized) I.sign(); + switch (channel_mode) { + case 0 : // All + case 1 : // One for one + res.get_shared_channel(c) = I; + break; + case 2 : // Partial sum + cimg_pragma_openmp(critical(_correlate)) res.get_shared_channel(c/smin)+=I; + break; + case 3 : // Full sum + cimg_pragma_openmp(critical(_correlate)) res.get_shared_channel(0)+=I; + break; + } } - } - } else { + } else { // Generic version + cimg_pragma_openmp(parallel for cimg_openmp_if(is_outer_parallel)) + for (int c = 0; c I = get_shared_channel(c%_spectrum); + const CImg K = _kernel.get_shared_channel(!channel_mode?c/_spectrum:c%_kernel._spectrum); + CImg _resu = channel_mode<=1?res.get_shared_channel(c): + CImg(res.width(),res.height(),res.depth(),1); + Ttfloat M = 0, M2 = 0; + if (is_normalized) { M = (Ttfloat)K.magnitude(2); M2 = cimg::sqr(M); } - // Generic version for other kernels and boundary conditions. - res.assign(nwidth,nheight,ndepth, - channel_mode==0?_kernel._spectrum: - channel_mode==1?std::max(_spectrum,_kernel._spectrum): - _spectrum*_kernel._spectrum); +#define _cimg_correlate_x_int const int ix = xstart + i_xstride*x + i_xdilation*(p - _xcenter) +#define _cimg_correlate_y_int const int iy = ystart + i_ystride*y + i_ydilation*(q - _ycenter) +#define _cimg_correlate_z_int const int iz = zstart + i_zstride*z + i_zdilation*(r - _zcenter) +#define _cimg_correlate_x_float const float ix = xstart + xstride*x + _xdilation*(p - _xcenter) +#define _cimg_correlate_y_float const float iy = ystart + ystride*y + _ydilation*(q - _ycenter) +#define _cimg_correlate_z_float const float iz = zstart + zstride*z + _zdilation*(r - _zcenter) - if (!channel_mode) { // Channel mode: Sum inputs - cimg_pragma_openmp(parallel for cimg_openmp_if(!is_inner_parallel && is_outer_parallel)) - cimg_forC(_kernel,kc) _cimg_abort_try_openmp { - cimg_abort_test; - const CImg K = _kernel.get_shared_channel(kc%_kernel._spectrum); - int w2 = 0, h2 = 0, d2 = 0; - Ttfloat M = 0, M2 = 0; - if (is_normalized) { M = (Ttfloat)K.magnitude(2); M2 = M*M; } - if (boundary_conditions>=3) { w2 = 2*width(); h2 = 2*height(); d2 = 2*depth(); } - res.fill(0); - cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) cimg_openmp_if(is_inner_parallel)) - cimg_forXYZC(res,x,y,z,c) { - Ttfloat _val, val = 0, N = 0; +#define _cimg_correlate_x_int_dirichlet const bool is_in_x = ix>=0 && ix=0 && iy=0 && iz I = get_shared_channel(c%_spectrum); - const CImg K = _kernel.get_shared_channel(channel_mode==1?c%_kernel._spectrum:c/_spectrum); - int w2 = 0, h2 = 0, d2 = 0; - Ttfloat M = 0, M2 = 0; - if (is_normalized) { M = (Ttfloat)K.magnitude(2); M2 = M*M; } - if (boundary_conditions>=3) { w2 = 2*I.width(); h2 = 2*I.height(); d2 = 2*I.depth(); } - cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) cimg_openmp_if(is_inner_parallel)) - cimg_forXYZ(res,x,y,z) { - Ttfloat _val, val = 0, N = 0; +#define _cimg_correlate_x_int_periodic const int nix = cimg::mod(ix,w) +#define _cimg_correlate_y_int_periodic const int niy = cimg::mod(iy,h) +#define _cimg_correlate_z_int_periodic const int niz = cimg::mod(iz,d) +#define _cimg_correlate_x_float_periodic const float nix = cimg::mod(ix,w) +#define _cimg_correlate_y_float_periodic const float niy = cimg::mod(iy,h) +#define _cimg_correlate_z_float_periodic const float niz = cimg::mod(iz,d) - if (is_int_stride_dilation) - cimg_forXYZ(_kernel,p,q,r) { - const int - ix = (int)xstart + _xstride*x + _xdilation*(p - _xcenter), - iy = (int)ystart + _ystride*y + _ydilation*(q - _ycenter), - iz = (int)zstart + _zstride*z + _zdilation*(r - _zcenter); - switch (boundary_conditions) { - case 0 : _val = I.atXYZ(ix,iy,iz,0,0); break; // Dirichlet - case 1 : _val = I._atXYZ(ix,iy,iz); break; // Neumann - case 2 : _val = I(cimg::mod(ix,I.width()),cimg::mod(iy,I.height()), // Periodic - cimg::mod(iz,I.depth())); break; - default : { // Mirror - const int mx = cimg::mod(ix,w2), my = cimg::mod(iy,h2), mz = cimg::mod(iz,d2); - _val = I(mx CImg& convolve(const CImg& kernel, const unsigned int boundary_conditions=1, const bool is_normalized=false, const unsigned int channel_mode=1, - const unsigned int xcenter=~0U, const unsigned int ycenter=~0U, const unsigned int zcenter=~0U, - const unsigned int xstart=0, const unsigned int ystart=0, const unsigned zstart=0, - const unsigned int xend=~0U, const unsigned int yend=~0U, const unsigned int zend=~0U, + const int xcenter=(int)(~0U>>1), + const int ycenter=(int)(~0U>>1), + const int zcenter=(int)(~0U>>1), + const int xstart=0, + const int ystart=0, + const int zstart=0, + const int xend=(int)(~0U>>1), + const int yend=(int)(~0U>>1), + const int zend=(int)(~0U>>1), const float xstride=1, const float ystride=1, const float zstride=1, - const float xdilation=1, const float ydilation=1, const float zdilation=1) { + const float xdilation=1, const float ydilation=1, const float zdilation=1, + const bool interpolation_type=false) { if (is_empty() || !kernel) return *this; return get_convolve(kernel,boundary_conditions,is_normalized,channel_mode, xcenter,ycenter,zcenter,xstart,ystart,zstart,xend,yend,zend, - xstride,ystride,zstride,xdilation,ydilation,zdilation).move_to(*this); + xstride,ystride,zstride,xdilation,ydilation,zdilation, + interpolation_type).move_to(*this); } //! Convolve image by a kernel \newinstance. template CImg<_cimg_Ttfloat> get_convolve(const CImg& kernel, const unsigned int boundary_conditions=1, const bool is_normalized=false, const unsigned int channel_mode=1, - const unsigned int xcenter=~0U, const unsigned int ycenter=~0U, - const unsigned int zcenter=~0U, - const unsigned int xstart=0, const unsigned int ystart=0, const unsigned zstart=0, - const unsigned int xend=~0U, const unsigned int yend=~0U, - const unsigned int zend=~0U, - const float xstride=1, const float ystride=1, const float zstride=1, - const float xdilation=1, const float ydilation=1, const float zdilation=1) const { + const int xcenter=(int)(~0U>>1), + const int ycenter=(int)(~0U>>1), + const int zcenter=(int)(~0U>>1), + const int xstart=0, + const int ystart=0, + const int zstart=0, + const int xend=(int)(~0U>>1), + const int yend=(int)(~0U>>1), + const int zend=(int)(~0U>>1), + const float xstride=1, const float ystride=1, const float zstride=1, + const float xdilation=1, const float ydilation=1, const float zdilation=1, + const bool interpolation_type=false) const { return _correlate(kernel,boundary_conditions,is_normalized,channel_mode, xcenter,ycenter,zcenter,xstart,ystart,zstart,xend,yend,zend, - xstride,ystride,zstride,xdilation,ydilation,zdilation,true); + xstride,ystride,zstride,xdilation,ydilation,zdilation, + interpolation_type,true); } //! Cumulate image values, optionally along specified axis. @@ -38142,10 +39870,11 @@ namespace cimg_library_suffixed { /** \param kernel Structuring element. \param boundary_conditions Boundary conditions. + Can be { 0=dirichlet | 1=neumann | 2=periodic | 3=mirror }. \param is_real Do the erosion in real (a.k.a 'non-flat') mode (\c true) rather than binary mode (\c false). **/ template - CImg& erode(const CImg& kernel, const bool boundary_conditions=true, + CImg& erode(const CImg& kernel, const unsigned int boundary_conditions=1, const bool is_real=false) { if (is_empty() || !kernel) return *this; return get_erode(kernel,boundary_conditions,is_real).move_to(*this); @@ -38153,7 +39882,7 @@ namespace cimg_library_suffixed { //! Erode image by a structuring element \newinstance. template - CImg<_cimg_Tt> get_erode(const CImg& kernel, const bool boundary_conditions=true, + CImg<_cimg_Tt> get_erode(const CImg& kernel, const unsigned int boundary_conditions=1, const bool is_real=false) const { if (is_empty() || !kernel) return *this; if (!is_real && kernel==0) return CImg(width(),height(),depth(),spectrum(),0); @@ -38162,7 +39891,8 @@ namespace cimg_library_suffixed { const int mx2 = kernel.width()/2, my2 = kernel.height()/2, mz2 = kernel.depth()/2, mx1 = kernel.width() - mx2 - 1, my1 = kernel.height() - my2 - 1, mz1 = kernel.depth() - mz2 - 1, - mxe = width() - mx2, mye = height() - my2, mze = depth() - mz2; + mxe = width() - mx2, mye = height() - my2, mze = depth() - mz2, + w2 = 2*width(), h2 = 2*height(), d2 = 2*depth(); const bool is_inner_parallel = _width*_height*_depth>=(cimg_openmp_sizefactor)*32768, is_outer_parallel = res.size()>=(cimg_openmp_sizefactor)*32768; @@ -38190,38 +39920,43 @@ namespace cimg_library_suffixed { } res(x,y,z,c) = min_val; } _cimg_abort_catch_openmp2 - if (boundary_conditions) - cimg_pragma_openmp(parallel for cimg_openmp_collapse(2) cimg_openmp_if(is_inner_parallel)) - cimg_forYZ(res,y,z) _cimg_abort_try_openmp2 { - cimg_abort_test2; - for (int x = 0; x=mye || z=mze)?++x:((x=mxe)?++x:(x=mxe))) { - Tt min_val = cimg::type::max(); - for (int zm = -mz1; zm<=mz2; ++zm) - for (int ym = -my1; ym<=my2; ++ym) - for (int xm = -mx1; xm<=mx2; ++xm) { - const t mval = K(mx1 + xm,my1 + ym,mz1 + zm); - const Tt cval = (Tt)(img._atXYZ(x + xm,y + ym,z + zm) - mval); - if (cval=mye || z=mze)?++x:((x=mxe)?++x:(x=mxe))) { + Tt min_val = cimg::type::max(); + for (int zm = -mz1; zm<=mz2; ++zm) + for (int ym = -my1; ym<=my2; ++ym) + for (int xm = -mx1; xm<=mx2; ++xm) { + const t mval = K(mx1 + xm,my1 + ym,mz1 + zm); + Tt cval; + switch (boundary_conditions) { + case 0 : cval = (Tt)(img.atXYZ(x + xm,y + ym,z + zm,0,(T)0) - mval); break; + case 1 : cval = (Tt)(img._atXYZ(x + xm,y + ym,z + zm) - mval); break; + case 2 : { + const int + nx = cimg::mod(x + xm,width()), + ny = cimg::mod(y + ym,height()), + nz = cimg::mod(z + zm,depth()); + cval = img(nx,ny,nz) - mval; + } break; + default : { + const int + tx = cimg::mod(x + xm,w2), + ty = cimg::mod(y + ym,h2), + tz = cimg::mod(z + zm,d2), + nx = tx=mye || z=mze)?++x:((x=mxe)?++x:(x=mxe))) { - Tt min_val = cimg::type::max(); - for (int zm = -mz1; zm<=mz2; ++zm) - for (int ym = -my1; ym<=my2; ++ym) - for (int xm = -mx1; xm<=mx2; ++xm) { - const t mval = K(mx1 + xm,my1 + ym,mz1 + zm); - const Tt cval = (Tt)(img.atXYZ(x + xm,y + ym,z + zm,0,(T)0) - mval); - if (cval=mye || z=mze)?++x:((x=mxe)?++x:(x=mxe))) { - Tt min_val = cimg::type::max(); - for (int zm = -mz1; zm<=mz2; ++zm) - for (int ym = -my1; ym<=my2; ++ym) - for (int xm = -mx1; xm<=mx2; ++xm) - if (K(mx1 + xm,my1 + ym,mz1 + zm)) { - const Tt cval = (Tt)img._atXYZ(x + xm,y + ym,z + zm); - if (cval=mye || z=mze)?++x:((x=mxe)?++x:(x=mxe))) { + Tt min_val = cimg::type::max(); + for (int zm = -mz1; zm<=mz2; ++zm) + for (int ym = -my1; ym<=my2; ++ym) + for (int xm = -mx1; xm<=mx2; ++xm) { + if (K(mx1 + xm,my1 + ym,mz1 + zm)) { + Tt cval; + switch (boundary_conditions) { + case 0 : cval = (Tt)img.atXYZ(x + xm,y + ym,z + zm,0,(T)0); break; + case 1 : cval = (Tt)img._atXYZ(x + xm,y + ym,z + zm); break; + case 2 : { + const int + nx = cimg::mod(x + xm,width()), + ny = cimg::mod(y + ym,height()), + nz = cimg::mod(z + zm,depth()); + cval = img(nx,ny,nz); + } break; + default : { + const int + tx = cimg::mod(x + xm,w2), + ty = cimg::mod(y + ym,h2), + tz = cimg::mod(z + zm,d2), + nx = tx=mye || z=mze)?++x:((x=mxe)?++x:(x=mxe))) { - Tt min_val = cimg::type::max(); - for (int zm = -mz1; zm<=mz2; ++zm) - for (int ym = -my1; ym<=my2; ++ym) - for (int xm = -mx1; xm<=mx2; ++xm) - if (K(mx1 + xm,my1 + ym,mz1 + zm)) { - const Tt cval = (Tt)img.atXYZ(x + xm,y + ym,z + zm,0,(T)0); - if (cval& erode(const unsigned int sx, const unsigned int sy, const unsigned int sz=1) { - if (is_empty() || (sx==1 && sy==1 && sz==1)) return *this; + if (is_empty() || (sx<=1 && sy<=1 && sz<=1)) return *this; if (sx>1 && _width>1) { // Along X-axis const int L = width(), off = 1, s = (int)sx, _s2 = s/2 + 1, _s1 = s - _s2, s1 = _s1>L?L:_s1, s2 = _s2>L?L:_s2; CImg buf(L); cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) firstprivate(buf) if (size()>524288)) cimg_forYZC(*this,y,z,c) { T *const ptrdb = buf._data, *ptrd = buf._data, *const ptrde = buf._data + L - 1; - const T *const ptrsb = data(0,y,z,c), *ptrs = ptrsb, *const ptrse = ptrs + L*off - off; + const T *const ptrsb = data(0,y,z,c), *ptrs = ptrsb, *const ptrse = ptrs + (ulongT)L*off - off; T cur = *ptrs; ptrs+=off; bool is_first = true; for (int p = s2 - 1; p>0 && ptrs<=ptrse; --p) { const T val = *ptrs; ptrs+=off; if (val<=cur) { cur = val; is_first = false; }} @@ -38332,7 +40074,7 @@ namespace cimg_library_suffixed { cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) firstprivate(buf) if (size()>524288)) cimg_forXZC(*this,x,z,c) { T *const ptrdb = buf._data, *ptrd = ptrdb, *const ptrde = buf._data + L - 1; - const T *const ptrsb = data(x,0,z,c), *ptrs = ptrsb, *const ptrse = ptrs + L*off - off; + const T *const ptrsb = data(x,0,z,c), *ptrs = ptrsb, *const ptrse = ptrs + (ulongT)L*off - off; T cur = *ptrs; ptrs+=off; bool is_first = true; for (int p = s2 - 1; p>0 && ptrs<=ptrse; --p) { const T val = *ptrs; ptrs+=off; if (val<=cur) { cur = val; is_first = false; } @@ -38374,7 +40116,7 @@ namespace cimg_library_suffixed { cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) firstprivate(buf) if (size()>524288)) cimg_forXYC(*this,x,y,c) { T *const ptrdb = buf._data, *ptrd = ptrdb, *const ptrde = buf._data + L - 1; - const T *const ptrsb = data(x,y,0,c), *ptrs = ptrsb, *const ptrse = ptrs + L*off - off; + const T *const ptrsb = data(x,y,0,c), *ptrs = ptrsb, *const ptrse = ptrs + (ulongT)L*off - off; T cur = *ptrs; ptrs+=off; bool is_first = true; for (int p = s2 - 1; p>0 && ptrs<=ptrse; --p) { const T val = *ptrs; ptrs+=off; if (val<=cur) { cur = val; is_first = false; } @@ -38433,10 +40175,11 @@ namespace cimg_library_suffixed { /** \param kernel Structuring element. \param boundary_conditions Boundary conditions. + Can be { 0=dirichlet | 1=neumann | 2=periodic | 3=mirror }. \param is_real Do the dilation in real (a.k.a 'non-flat') mode (\c true) rather than binary mode (\c false). **/ template - CImg& dilate(const CImg& kernel, const bool boundary_conditions=true, + CImg& dilate(const CImg& kernel, const unsigned int boundary_conditions=1, const bool is_real=false) { if (is_empty() || !kernel) return *this; return get_dilate(kernel,boundary_conditions,is_real).move_to(*this); @@ -38444,7 +40187,7 @@ namespace cimg_library_suffixed { //! Dilate image by a structuring element \newinstance. template - CImg<_cimg_Tt> get_dilate(const CImg& kernel, const bool boundary_conditions=true, + CImg<_cimg_Tt> get_dilate(const CImg& kernel, const unsigned int boundary_conditions=1, const bool is_real=false) const { if (is_empty() || !kernel || (!is_real && kernel==0)) return *this; typedef _cimg_Tt Tt; @@ -38452,7 +40195,8 @@ namespace cimg_library_suffixed { const int mx1 = kernel.width()/2, my1 = kernel.height()/2, mz1 = kernel.depth()/2, mx2 = kernel.width() - mx1 - 1, my2 = kernel.height() - my1 - 1, mz2 = kernel.depth() - mz1 - 1, - mxe = width() - mx2, mye = height() - my2, mze = depth() - mz2; + mxe = width() - mx2, mye = height() - my2, mze = depth() - mz2, + w2 = 2*width(), h2 = 2*height(), d2 = 2*depth(); const bool is_inner_parallel = _width*_height*_depth>=(cimg_openmp_sizefactor)*32768, is_outer_parallel = res.size()>=(cimg_openmp_sizefactor)*32768; @@ -38480,38 +40224,44 @@ namespace cimg_library_suffixed { } res(x,y,z,c) = max_val; } _cimg_abort_catch_openmp2 - if (boundary_conditions) - cimg_pragma_openmp(parallel for cimg_openmp_collapse(2) cimg_openmp_if(is_inner_parallel)) - cimg_forYZ(res,y,z) _cimg_abort_try_openmp2 { - cimg_abort_test2; - for (int x = 0; x=mye || z=mze)?++x:((x=mxe)?++x:(x=mxe))) { - Tt max_val = cimg::type::min(); - for (int zm = -mz1; zm<=mz2; ++zm) - for (int ym = -my1; ym<=my2; ++ym) - for (int xm = -mx1; xm<=mx2; ++xm) { - const t mval = K(mx2 - xm,my2 - ym,mz2 - zm); - const Tt cval = (Tt)(img._atXYZ(x + xm,y + ym,z + zm) + mval); - if (cval>max_val) max_val = cval; + + cimg_pragma_openmp(parallel for cimg_openmp_collapse(2) cimg_openmp_if(is_inner_parallel)) + cimg_forYZ(res,y,z) _cimg_abort_try_openmp2 { + cimg_abort_test2; + for (int x = 0; x=mye || z=mze)?++x:((x=mxe)?++x:(x=mxe))) { + Tt max_val = cimg::type::min(); + for (int zm = -mz1; zm<=mz2; ++zm) + for (int ym = -my1; ym<=my2; ++ym) + for (int xm = -mx1; xm<=mx2; ++xm) { + const t mval = K(mx2 - xm,my2 - ym,mz2 - zm); + Tt cval; + switch (boundary_conditions) { + case 0 : cval = (Tt)(img.atXYZ(x + xm,y + ym,z + zm,0,(T)0) + mval); break; + case 1 : cval = (Tt)(img._atXYZ(x + xm,y + ym,z + zm) + mval); break; + case 2 : { + const int + nx = cimg::mod(x + xm,width()), + ny = cimg::mod(y + ym,height()), + nz = cimg::mod(z + zm,depth()); + cval = img(nx,ny,nz) + mval; + } break; + default : { + const int + tx = cimg::mod(x + xm,w2), + ty = cimg::mod(y + ym,h2), + tz = cimg::mod(z + zm,d2), + nx = tx=mye || z=mze)?++x:((x=mxe)?++x:(x=mxe))) { - Tt max_val = cimg::type::min(); - for (int zm = -mz1; zm<=mz2; ++zm) - for (int ym = -my1; ym<=my2; ++ym) - for (int xm = -mx1; xm<=mx2; ++xm) { - const t mval = K(mx2 - xm,my2 - ym,mz2 - zm); - const Tt cval = (Tt)(img.atXYZ(x + xm,y + ym,z + zm,0,(T)0) + mval); - if (cval>max_val) max_val = cval; } - res(x,y,z,c) = max_val; - } - } _cimg_abort_catch_openmp2 + if (cval>max_val) max_val = cval; + } + res(x,y,z,c) = max_val; + } + } _cimg_abort_catch_openmp2 + } else { // Binary dilation cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) cimg_openmp_if(is_inner_parallel)) for (int z = mz1; z=mye || z=mze)?++x:((x=mxe)?++x:(x=mxe))) { - Tt max_val = cimg::type::min(); - for (int zm = -mz1; zm<=mz2; ++zm) - for (int ym = -my1; ym<=my2; ++ym) - for (int xm = -mx1; xm<=mx2; ++xm) - if (K(mx2 - xm,my2 - ym,mz2 - zm)) { - const Tt cval = (Tt)img._atXYZ(x + xm,y + ym,z + zm); - if (cval>max_val) max_val = cval; + + cimg_pragma_openmp(parallel for cimg_openmp_collapse(2) cimg_openmp_if(is_inner_parallel)) + cimg_forYZ(res,y,z) _cimg_abort_try_openmp2 { + cimg_abort_test2; + for (int x = 0; x=mye || z=mze)?++x:((x=mxe)?++x:(x=mxe))) { + Tt max_val = cimg::type::min(); + for (int zm = -mz1; zm<=mz2; ++zm) + for (int ym = -my1; ym<=my2; ++ym) + for (int xm = -mx1; xm<=mx2; ++xm) { + if (K(mx2 - xm,my2 - ym,mz2 - zm)) { + Tt cval; + switch (boundary_conditions) { + case 0 : cval = (Tt)img.atXYZ(x + xm,y + ym,z + zm,0,(T)0); break; + case 1 : cval = (Tt)img._atXYZ(x + xm,y + ym,z + zm); break; + case 2 : { + const int + nx = cimg::mod(x + xm,width()), + ny = cimg::mod(y + ym,height()), + nz = cimg::mod(z + zm,depth()); + cval = img(nx,ny,nz); + } break; + default : { + const int + tx = cimg::mod(x + xm,w2), + ty = cimg::mod(y + ym,h2), + tz = cimg::mod(z + zm,d2), + nx = tx=mye || z=mze)?++x:((x=mxe)?++x:(x=mxe))) { - Tt max_val = cimg::type::min(); - for (int zm = -mz1; zm<=mz2; ++zm) - for (int ym = -my1; ym<=my2; ++ym) - for (int xm = -mx1; xm<=mx2; ++xm) - if (K(mx2 - xm,my2 - ym,mz2 - zm)) { - const Tt cval = (Tt)img.atXYZ(x + xm,y + ym,z + zm,0,(T)0); - if (cval>max_val) max_val = cval; } - res(x,y,z,c) = max_val; - } - } _cimg_abort_catch_openmp2 + if (cval>max_val) max_val = cval; + } + } + res(x,y,z,c) = max_val; + } + } _cimg_abort_catch_openmp2 + } } _cimg_abort_catch_openmp cimg_abort_test; @@ -38573,14 +40330,14 @@ namespace cimg_library_suffixed { \param sz Depth of the structuring element. **/ CImg& dilate(const unsigned int sx, const unsigned int sy, const unsigned int sz=1) { - if (is_empty() || (sx==1 && sy==1 && sz==1)) return *this; + if (is_empty() || (sx<=1 && sy<=1 && sz<=1)) return *this; if (sx>1 && _width>1) { // Along X-axis const int L = width(), off = 1, s = (int)sx, _s1 = s/2, _s2 = s - _s1, s1 = _s1>L?L:_s1, s2 = _s2>L?L:_s2; CImg buf(L); cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) firstprivate(buf) if (size()>524288)) cimg_forYZC(*this,y,z,c) { T *const ptrdb = buf._data, *ptrd = ptrdb, *const ptrde = buf._data + L - 1; - const T *const ptrsb = data(0,y,z,c), *ptrs = ptrsb, *const ptrse = ptrs + L*off - off; + const T *const ptrsb = data(0,y,z,c), *ptrs = ptrsb, *const ptrse = ptrs + (ulongT)L*off - off; T cur = *ptrs; ptrs+=off; bool is_first = true; for (int p = s2 - 1; p>0 && ptrs<=ptrse; --p) { const T val = *ptrs; ptrs+=off; if (val>=cur) { cur = val; is_first = false; } @@ -38622,7 +40379,7 @@ namespace cimg_library_suffixed { cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) firstprivate(buf) if (size()>524288)) cimg_forXZC(*this,x,z,c) { T *const ptrdb = buf._data, *ptrd = ptrdb, *const ptrde = buf._data + L - 1; - const T *const ptrsb = data(x,0,z,c), *ptrs = ptrsb, *const ptrse = ptrs + L*off - off; + const T *const ptrsb = data(x,0,z,c), *ptrs = ptrsb, *const ptrse = ptrs + (ulongT)L*off - off; T cur = *ptrs; ptrs+=off; bool is_first = true; for (int p = s2 - 1; p>0 && ptrs<=ptrse; --p) { const T val = *ptrs; ptrs+=off; if (val>=cur) { cur = val; is_first = false; } @@ -38664,7 +40421,7 @@ namespace cimg_library_suffixed { cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) firstprivate(buf) if (size()>524288)) cimg_forXYC(*this,x,y,c) { T *const ptrdb = buf._data, *ptrd = ptrdb, *const ptrde = buf._data + L - 1; - const T *const ptrsb = data(x,y,0,c), *ptrs = ptrsb, *const ptrse = ptrs + L*off - off; + const T *const ptrsb = data(x,y,0,c), *ptrs = ptrsb, *const ptrse = ptrs + (ulongT)L*off - off; T cur = *ptrs; ptrs+=off; bool is_first = true; for (int p = s2 - 1; p>0 && ptrs<=ptrse; --p) { const T val = *ptrs; ptrs+=off; if (val>=cur) { cur = val; is_first = false; } @@ -38719,6 +40476,164 @@ namespace cimg_library_suffixed { return (+*this).dilate(s); } + //! Apply morphological closing by a structuring element. + /** + \param kernel Structuring element. + \param boundary_conditions Boundary conditions. + Can be { 0=dirichlet | 1=neumann | 2=periodic | 3=mirror }. + \param is_real Do the closing in real (a.k.a 'non-flat') mode (\c true) rather than binary mode (\c false). + **/ + template + CImg& closing(const CImg& kernel, const unsigned int boundary_conditions=1, + const bool is_real=false) { + const int sx = kernel.width(), sy = kernel.height(), sz = kernel.depth(); + if (is_empty() || (sx<=1 && sy<=1 && sz<=1)) return *this; + return get_closing(kernel,boundary_conditions,is_real).move_to(*this); + } + + //! Apply morphological closing by a structuring element \newinstance. + template + CImg get_closing(const CImg& kernel, const unsigned int boundary_conditions=1, + const bool is_real=false) const { + const int sx = kernel.width(), sy = kernel.height(), sz = kernel.depth(); + if (is_empty() || (sx<=1 && sy<=1 && sz<=1)) return *this; + const int sx1 = (int)(sx - 1)/2, sy1 = (int)(sy - 1)/2, sz1 = (int)(sz - 1)/2; + CImg res; + if (_depth>1) { // 3D + get_resize(width() + sx + 1,height() + sy + 1,depth() + sz + 1,spectrum(),0,boundary_conditions,0.5,0.5,0.5). + dilate(kernel,1,is_real).erode(kernel,1,is_real). + crop(sx1 + 1,sy1 + 1,sz1 + 1,sx1 + width(),sy1 + height(),sz1 + depth()).move_to(res); + } else if (_height>1) { // 2D + get_resize(width() + sx + 1,height() + sy + 1,1,spectrum(),0,boundary_conditions,0.5,0.5). + dilate(kernel,1,is_real).erode(kernel,1,is_real). + crop(sx1 + 1,sy1 + 1,sx1 + width(),sy1 + height()).move_to(res); + } else if (_width>1) { // 1D + get_resize(width() + sx + 1,1,1,spectrum(),0,boundary_conditions,0.5). + dilate(kernel,1,is_real).erode(kernel,1,is_real). + crop(sx1 + 1,sx1 + width()).move_to(res); + } + return res; + } + + //! Apply morphological closing by a rectangular structuring element of specified size. + CImg& closing(const unsigned int sx, const unsigned int sy, const unsigned int sz=1) { + if (is_empty() || (sx<=1 && sy<=1 && sz<=1)) return *this; + return get_closing(sx,sy,sz).move_to(*this); + } + + //! Apply morphological closing by a rectangular structuring element of specified size \newinstance. + CImg get_closing(const unsigned int sx, const unsigned int sy, const unsigned int sz=1) const { + if (is_empty() || (sx<=1 && sy<=1 && sz<=1)) return *this; + const int sx1 = (int)(sx - 1)/2, sy1 = (int)(sy - 1)/2, sz1 = (int)(sz - 1)/2; + CImg res; + if (_depth>1) { // 3D + get_resize(width() + sx + 1,height() + sy + 1,depth() + sz + 1,spectrum(),0,1,0.5,0.5,0.5). + dilate(sx,sy,sz).erode(sx,sy,sz). + crop(sx1 + 1,sy1 + 1,sz1 + 1,sx1 + width(),sy1 + height(),sz1 + depth()).move_to(res); + } else if (_height>1) { // 2D + get_resize(width() + sx + 1,height() + sy + 1,1,spectrum(),0,1,0.5,0.5). + dilate(sx,sy).erode(sx,sy). + crop(sx1 + 1,sy1 + 1,sx1 + width(),sy1 + height()).move_to(res); + } else if (_width>1) { // 1D + get_resize(width() + sx + 1,1,1,spectrum(),0,1,0.5). + dilate(sx,1).erode(sx,1). + crop(sx1 + 1,sx1 + width()).move_to(res); + } + return res; + } + + //! Apply morphological closing by a square structuring element of specified size. + /** + \param s Size of the structuring element. + **/ + CImg& closing(const unsigned int s) { + return closing(s,s,s); + } + + //! Apply morphological closing by a square structuring element of specified size \newinstance. + CImg get_closing(const unsigned int s) const { + return (+*this).closing(s); + } + + //! Apply morphological opening by a structuring element. + /** + \param kernel Structuring element. + \param boundary_conditions Boundary conditions. + Can be { 0=dirichlet | 1=neumann | 2=periodic | 3=mirror }. + \param is_real Do the opening in real (a.k.a 'non-flat') mode (\c true) rather than binary mode (\c false). + **/ + template + CImg& opening(const CImg& kernel, const unsigned int boundary_conditions=1, + const bool is_real=false) { + const int sx = kernel.width(), sy = kernel.height(), sz = kernel.depth(); + if (is_empty() || (sx<=1 && sy<=1 && sz<=1)) return *this; + return get_opening(kernel,boundary_conditions,is_real).move_to(*this); + } + + //! Apply morphological opening by a structuring element \newinstance. + template + CImg get_opening(const CImg& kernel, const unsigned int boundary_conditions=1, + const bool is_real=false) const { + const int sx = kernel.width(), sy = kernel.height(), sz = kernel.depth(); + if (is_empty() || (sx<=1 && sy<=1 && sz<=1)) return *this; + const int sx1 = (int)(sx - 1)/2, sy1 = (int)(sy - 1)/2, sz1 = (int)(sz - 1)/2; + CImg res; + if (_depth>1) { // 3D + get_resize(width() + sx + 1,height() + sy + 1,depth() + sz + 1,spectrum(),0,boundary_conditions,0.5,0.5,0.5). + erode(kernel,1,is_real).dilate(kernel,1,is_real). + crop(sx1 + 1,sy1 + 1,sz1 + 1,sx1 + width(),sy1 + height(),sz1 + depth()).move_to(res); + } else if (_height>1) { // 2D + get_resize(width() + sx + 1,height() + sy + 1,1,spectrum(),0,boundary_conditions,0.5,0.5). + erode(kernel,1,is_real).dilate(kernel,1,is_real). + crop(sx1 + 1,sy1 + 1,sx1 + width(),sy1 + height()).move_to(res); + } else if (_width>1) { // 1D + get_resize(width() + sx + 1,1,1,spectrum(),0,boundary_conditions,0.5). + erode(kernel,1,is_real).dilate(kernel,1,is_real). + crop(sx1 + 1,sx1 + width()).move_to(res); + } + return res; + } + + //! Apply morphological opening by a rectangular structuring element of specified size. + CImg& opening(const unsigned int sx, const unsigned int sy, const unsigned int sz=1) { + if (is_empty() || (sx<=1 && sy<=1 && sz<=1)) return *this; + return get_opening(sx,sy,sz).move_to(*this); + } + + //! Apply morphological opening by a rectangular structuring element of specified size \newinstance. + CImg get_opening(const unsigned int sx, const unsigned int sy, const unsigned int sz=1) const { + if (is_empty() || (sx<=1 && sy<=1 && sz<=1)) return *this; + const int sx1 = (int)(sx - 1)/2, sy1 = (int)(sy - 1)/2, sz1 = (int)(sz - 1)/2; + CImg res; + if (_depth>1) { // 3D + get_resize(width() + sx + 1,height() + sy + 1,depth() + sz + 1,spectrum(),0,1,0.5,0.5,0.5). + erode(sx,sy,sz).dilate(sx,sy,sz). + crop(sx1 + 1,sy1 + 1,sz1 + 1,sx1 + width(),sy1 + height(),sz1 + depth()).move_to(res); + } else if (_height>1) { // 2D + get_resize(width() + sx + 1,height() + sy + 1,1,spectrum(),0,1,0.5,0.5). + erode(sx,sy).dilate(sx,sy). + crop(sx1 + 1,sy1 + 1,sx1 + width(),sy1 + height()).move_to(res); + } else if (_width>1) { // 1D + get_resize(width() + sx + 1,1,1,spectrum(),0,1,0.5). + erode(sx,1).dilate(sx,1). + crop(sx1 + 1,sx1 + width()).move_to(res); + } + return res; + } + + //! Apply morphological opening by a square structuring element of specified size. + /** + \param s Size of the structuring element. + **/ + CImg& opening(const unsigned int s) { + return opening(s,s,s); + } + + //! Apply morphological opening by a square structuring element of specified size \newinstance. + CImg get_opening(const unsigned int s) const { + return (+*this).opening(s); + } + //! Compute watershed transform. /** \param priority Priority map. @@ -38918,10 +40833,11 @@ namespace cimg_library_suffixed { \param sigma Standard deviation of the filter. \param order Order of the filter. Can be { 0=smooth-filter | 1=1st-derivative | 2=2nd-derivative }. \param axis Axis along which the filter is computed. Can be { 'x' | 'y' | 'z' | 'c' }. - \param boundary_conditions Boundary conditions. Can be { 0=dirichlet | 1=neumann }. + \param boundary_conditions Boundary conditions. + Can be { 0=dirichlet | 1=neumann | 2=periodic | 3=mirror }. **/ CImg& deriche(const float sigma, const unsigned int order=0, const char axis='x', - const bool boundary_conditions=true) { + const unsigned int boundary_conditions=1) { #define _cimg_deriche_apply \ CImg Y(N); \ double *ptrY = Y._data, yb = 0, yp = 0; \ @@ -38941,13 +40857,46 @@ namespace cimg_library_suffixed { xa = xn; xn = xc; ya = yn; yn = yc; \ *ptrX = (T)(*(--ptrY)+yc); \ } + + if (order>2) + throw CImgArgumentException(_cimg_instance + "deriche(): Invalid specified order '%d' " + "('order' can be { 0=smoothing | 1=1st-derivative | 2=2nd-derivative }).", + cimg_instance, + order); + const char naxis = cimg::lowercase(axis); - const double nsigma = sigma>=0?sigma:-sigma*(naxis=='x'?_width: - naxis=='y'?_height: - naxis=='z'?_depth:_spectrum)/100; - if (is_empty() || (nsigma<0.1f && !order)) return *this; + if (naxis!='x' && naxis!='y' && naxis!='z' && naxis!='c') + throw CImgArgumentException(_cimg_instance + "deriche(): Invalid specified axis '%c'.", + cimg_instance, + axis); + const double + nsigma = sigma>=0?sigma:-sigma*(naxis=='x'?_width: + naxis=='y'?_height: + naxis=='z'?_depth:_spectrum)/100, + nnsigma = nsigma<0.1f?0.1f:nsigma; + + if (is_empty() || (nsigma<0.1f && !order)) return *this; + if (boundary_conditions>1) { + const int w = width(), h = height(), d = depth(), s = spectrum(), border = (int)cimg::round(1 + 3*nnsigma); + switch (naxis) { + case 'x' : + return draw_image(get_resize(w + 2*border,h,d,s,0,boundary_conditions,0.5). + deriche(nnsigma,order,naxis,1).columns(border,w - 1 + border)); + case 'y' : + return draw_image(get_resize(w,h + 2*border,d,s,0,boundary_conditions,0,0.5). + deriche(nnsigma,order,naxis,1).rows(border,h - 1 + border)); + case 'z' : + return draw_image(get_resize(w,h,d + 2*border,s,0,boundary_conditions,0,0,0.5). + deriche(nnsigma,order,naxis,1).slices(border,d - 1 + border)); + default : + return draw_image(get_resize(w,h,d,s + 2*border,0,boundary_conditions,0,0,0,0.5). + deriche(nnsigma,order,naxis,1).channels(border,d - 1 + border)); + } + } + const double - nnsigma = nsigma<0.1f?0.1f:nsigma, alpha = 1.695f/nnsigma, ema = std::exp(-alpha), ema2 = std::exp(-2*alpha), @@ -38968,7 +40917,7 @@ namespace cimg_library_suffixed { a1 = k*ema; a2 = -a1; } break; - case 2 : { + default : { const double ea = std::exp(-alpha), k = -(ema2 - 1)/(2*alpha*ema), @@ -38978,13 +40927,8 @@ namespace cimg_library_suffixed { a2 = kn*(1 - k*alpha)*ema; a3 = -kn*ema2; } break; - default : - throw CImgArgumentException(_cimg_instance - "deriche(): Invalid specified filter order %u " - "(should be { 0=smoothing | 1=1st-derivative | 2=2nd-derivative }).", - cimg_instance, - order); } + coefp = (a0 + a1)/(1 + b1 + b2); coefn = (a2 + a3)/(1 + b1 + b2); switch (naxis) { @@ -39022,7 +40966,7 @@ namespace cimg_library_suffixed { //! Apply recursive Deriche filter \newinstance. CImg get_deriche(const float sigma, const unsigned int order=0, const char axis='x', - const bool boundary_conditions=true) const { + const unsigned int boundary_conditions=1) const { return CImg(*this,false).deriche(sigma,order,axis,boundary_conditions); } @@ -39033,12 +40977,13 @@ namespace cimg_library_suffixed { \param N size of the data \param off the offset between two data point \param order the order of the filter 0 (smoothing), 1st derivative, 2nd derivative, 3rd derivative - \param boundary_conditions Boundary conditions. Can be { 0=dirichlet | 1=neumann }. + \param boundary_conditions Boundary conditions. + Can be { 0=dirichlet | 1=neumann }. \note Boundary condition using B. Triggs method (IEEE trans on Sig Proc 2005). */ static void _cimg_recursive_apply(T *data, const double filter[], const int N, const ulongT off, const unsigned int order, const bool boundary_conditions) { - double val[4] = { 0 }; // res[n,n - 1,n - 2,n - 3,..] or res[n,n + 1,n + 2,n + 3,..] + double val[4] = {}; // res[n,n - 1,n - 2,n - 3,..] or res[n,n + 1,n + 2,n + 3,..] const double sumsq = filter[0], sum = sumsq * sumsq, a1 = filter[1], a2 = filter[2], a3 = filter[3], @@ -39181,7 +41126,8 @@ namespace cimg_library_suffixed { \param sigma standard deviation of the Gaussian filter \param order the order of the filter 0,1,2,3 \param axis Axis along which the filter is computed. Can be { 'x' | 'y' | 'z' | 'c' }. - \param boundary_conditions Boundary conditions. Can be { 0=dirichlet | 1=neumann }. + \param boundary_conditions Boundary conditions. + Can be { 0=dirichlet | 1=neumann | 2=periodic | 3=mirror }. \note dirichlet boundary condition has a strange behavior I.T. Young, L.J. van Vliet, M. van Ginkel, Recursive Gabor filtering. @@ -39195,15 +41141,51 @@ namespace cimg_library_suffixed { vol. 54, pp. 2365-2367, 2006. **/ CImg& vanvliet(const float sigma, const unsigned int order, const char axis='x', - const bool boundary_conditions=true) { - if (is_empty()) return *this; + const unsigned int boundary_conditions=1) { + + if (order>2) + throw CImgArgumentException(_cimg_instance + "deriche(): Invalid specified order '%d' " + "('order' can be { 0=smoothing | 1=1st-derivative | 2=2nd-derivative }).", + cimg_instance, + order); + + const char naxis = cimg::lowercase(axis); + if (naxis!='x' && naxis!='y' && naxis!='z' && naxis!='c') + throw CImgArgumentException(_cimg_instance + "deriche(): Invalid specified axis '%c'.", + cimg_instance, + axis); + const double + nsigma = sigma>=0?sigma:-sigma*(naxis=='x'?_width: + naxis=='y'?_height: + naxis=='z'?_depth:_spectrum)/100, + nnsigma = nsigma<0.5f?0.5f:nsigma; + + if (is_empty() || (nsigma<0.1f && !order)) return *this; + if (nsigma<0.5f) return deriche(nsigma,order,axis,boundary_conditions); if (!cimg::type::is_float()) return CImg(*this,false).vanvliet(sigma,order,axis,boundary_conditions).move_to(*this); - const char naxis = cimg::lowercase(axis); - const float nsigma = sigma>=0?sigma:-sigma*(naxis=='x'?_width:naxis=='y'?_height:naxis=='z'?_depth:_spectrum)/100; - if (is_empty() || (nsigma<0.5f && !order)) return *this; + + if (boundary_conditions>1) { + const int w = width(), h = height(), d = depth(), s = spectrum(), border = (int)cimg::round(1 + 3*nnsigma); + switch (naxis) { + case 'x' : + return draw_image(get_resize(w + 2*border,h,d,s,0,boundary_conditions,0.5). + vanvliet(nnsigma,order,naxis,1).columns(border,w - 1 + border)); + case 'y' : + return draw_image(get_resize(w,h + 2*border,d,s,0,boundary_conditions,0,0.5). + vanvliet(nnsigma,order,naxis,1).rows(border,h - 1 + border)); + case 'z' : + return draw_image(get_resize(w,h,d + 2*border,s,0,boundary_conditions,0,0,0.5). + vanvliet(nnsigma,order,naxis,1).slices(border,d - 1 + border)); + default : + return draw_image(get_resize(w,h,d,s + 2*border,0,boundary_conditions,0,0,0,0.5). + vanvliet(nnsigma,order,naxis,1).channels(border,d - 1 + border)); + } + } + const double - nnsigma = nsigma<0.5f?0.5f:nsigma, m0 = 1.16680, m1 = 1.10783, m2 = 1.40586, m1sq = m1 * m1, m2sq = m2 * m2, q = (nnsigma<3.556?-0.2568 + 0.5784*nnsigma + 0.0561*nnsigma*nnsigma:2.5091 + 0.9804*(nnsigma - 3.556)), @@ -39248,7 +41230,7 @@ namespace cimg_library_suffixed { //! Blur image using Van Vliet recursive Gaussian filter. \newinstance. CImg get_vanvliet(const float sigma, const unsigned int order, const char axis='x', - const bool boundary_conditions=true) const { + const unsigned int boundary_conditions=1) const { return CImg(*this,false).vanvliet(sigma,order,axis,boundary_conditions); } @@ -39257,7 +41239,8 @@ namespace cimg_library_suffixed { \param sigma_x Standard deviation of the blur, along the X-axis. \param sigma_y Standard deviation of the blur, along the Y-axis. \param sigma_z Standard deviation of the blur, along the Z-axis. - \param boundary_conditions Boundary conditions. Can be { false=dirichlet | true=neumann }. + \param boundary_conditions Boundary conditions. + Can be { 0=dirichlet | 1=neumann | 2=periodic | 3=mirror }. \param is_gaussian Tells if the blur uses a gaussian (\c true) or quasi-gaussian (\c false) kernel. \note - The blur is computed as a 0-order Vanvliet (gaussian) or Deriche filter (quasi-gaussian). @@ -39265,7 +41248,7 @@ namespace cimg_library_suffixed { \see deriche(), vanvliet(). **/ CImg& blur(const float sigma_x, const float sigma_y, const float sigma_z, - const bool boundary_conditions=true, const bool is_gaussian=true) { + const unsigned int boundary_conditions=1, const bool is_gaussian=true) { if (is_empty()) return *this; if (is_gaussian) { if (_width>1) vanvliet(sigma_x,0,'x',boundary_conditions); @@ -39281,24 +41264,26 @@ namespace cimg_library_suffixed { //! Blur image \newinstance. CImg get_blur(const float sigma_x, const float sigma_y, const float sigma_z, - const bool boundary_conditions=true, const bool is_gaussian=true) const { + const unsigned int boundary_conditions=1, const bool is_gaussian=true) const { return CImg(*this,false).blur(sigma_x,sigma_y,sigma_z,boundary_conditions,is_gaussian); } //! Blur image isotropically. /** \param sigma Standard deviation of the blur. - \param boundary_conditions Boundary conditions. Can be { 0=dirichlet | 1=neumann }.a + \param boundary_conditions Boundary conditions. + Can be { 0=dirichlet | 1=neumann | 2=periodic | 3=mirror }.a \param is_gaussian Use a gaussian kernel (VanVliet) is set, a quasi-gaussian (Deriche) otherwise. \see deriche(), vanvliet(). **/ - CImg& blur(const float sigma, const bool boundary_conditions=true, const bool is_gaussian=true) { + CImg& blur(const float sigma, const unsigned int boundary_conditions=1, const bool is_gaussian=true) { const float nsigma = sigma>=0?sigma:-sigma*cimg::max(_width,_height,_depth)/100; return blur(nsigma,nsigma,nsigma,boundary_conditions,is_gaussian); } //! Blur image isotropically \newinstance. - CImg get_blur(const float sigma, const bool boundary_conditions=true, const bool is_gaussian=true) const { + CImg get_blur(const float sigma, const unsigned int boundary_conditions=1, + const bool is_gaussian=true) const { return CImg(*this,false).blur(sigma,boundary_conditions,is_gaussian); } @@ -39792,11 +41777,14 @@ namespace cimg_library_suffixed { \param boxsize Size of the box filter (can be subpixel). \param off the offset between two data point \param order the order of the filter 0 (smoothing), 1st derivative and 2nd derivative. - \param boundary_conditions Boundary conditions. Can be { 0=dirichlet | 1=neumann }. + \param boundary_conditions Boundary conditions. + Can be { 0=dirichlet | 1=neumann | 2=periodic | 3=mirror }. */ static void _cimg_blur_box_apply(T *ptr, const float boxsize, const int N, const ulongT off, - const int order, const bool boundary_conditions, + const int order, const unsigned int boundary_conditions, const unsigned int nb_iter) { + const int nboundary_conditions = boundary_conditions>1 && boxsize<=3?1:boundary_conditions; + // Smooth. if (boxsize>1 && nb_iter) { const int w2 = (int)(boxsize - 1)/2; @@ -39806,13 +41794,13 @@ namespace cimg_library_suffixed { for (unsigned int iter = 0; iter=N) return boundary_conditions?ptr[(N - 1)*off]:T(); - return ptr[x*off]; + const unsigned int boundary_conditions, const int x) { + switch (boundary_conditions) { + case 0 : // Dirichlet + return x<0 || x>=N?(T)0:ptr[x*off]; + case 1 : { // Neumann + const int nx = x<0?0:x>=N?N - 1:x; + return ptr[nx*off]; + } + case 2 : { // Periodic + const int nx = cimg::mod(x,N); + return ptr[nx*off]; + } + default : { // Mirror + const int + N2 = 2*N, + tx = cimg::mod(x,N2), + nx = tx{ 'x' | 'y' | 'z' | 'c' }. - \param boundary_conditions Boundary conditions. Can be { 0=dirichlet | 1=neumann }. + \param boundary_conditions Boundary conditions. + Can be { 0=dirichlet | 1=neumann | 2=periodic | 3=mirror }. \param nb_iter Number of filter iterations. **/ CImg& boxfilter(const float boxsize, const int order, const char axis='x', - const bool boundary_conditions=true, + const unsigned int boundary_conditions=1, const unsigned int nb_iter=1) { - if (is_empty() || !boxsize || (boxsize<=1 && !order)) return *this; const char naxis = cimg::lowercase(axis); const float nboxsize = boxsize>=0?boxsize:-boxsize* (naxis=='x'?_width:naxis=='y'?_height:naxis=='z'?_depth:_spectrum)/100; + if (is_empty() || !nboxsize || (nboxsize<=1 && !order)) return *this; switch (naxis) { case 'x' : { cimg_pragma_openmp(parallel for cimg_openmp_collapse(3) cimg_openmp_if(_width>=(cimg_openmp_sizefactor)*256 && @@ -39916,7 +41922,7 @@ namespace cimg_library_suffixed { // Apply box filter of order 0,1 or 2 \newinstance. CImg get_boxfilter(const float boxsize, const int order, const char axis='x', - const bool boundary_conditions=true, + const unsigned int boundary_conditions=1, const unsigned int nb_iter=1) const { return CImg(*this,false).boxfilter(boxsize,order,axis,boundary_conditions,nb_iter); } @@ -39926,14 +41932,15 @@ namespace cimg_library_suffixed { \param boxsize_x Size of the box window, along the X-axis (can be subpixel). \param boxsize_y Size of the box window, along the Y-axis (can be subpixel). \param boxsize_z Size of the box window, along the Z-axis (can be subpixel). - \param boundary_conditions Boundary conditions. Can be { false=dirichlet | true=neumann }. + \param boundary_conditions Boundary conditions. + Can be { false=dirichlet | true=neumann | 2=periodic | 3=mirror }. \param nb_iter Number of filter iterations. \note - This is a recursive algorithm, not depending on the values of the box kernel size. \see blur(). **/ CImg& blur_box(const float boxsize_x, const float boxsize_y, const float boxsize_z, - const bool boundary_conditions=true, + const unsigned int boundary_conditions=1, const unsigned int nb_iter=1) { if (is_empty()) return *this; if (_width>1) boxfilter(boxsize_x,0,'x',boundary_conditions,nb_iter); @@ -39944,23 +41951,24 @@ namespace cimg_library_suffixed { //! Blur image with a box filter \newinstance. CImg get_blur_box(const float boxsize_x, const float boxsize_y, const float boxsize_z, - const bool boundary_conditions=true) const { + const unsigned int boundary_conditions=1) const { return CImg(*this,false).blur_box(boxsize_x,boxsize_y,boxsize_z,boundary_conditions); } //! Blur image with a box filter. /** \param boxsize Size of the box window (can be subpixel). - \param boundary_conditions Boundary conditions. Can be { 0=dirichlet | 1=neumann }.a + \param boundary_conditions Boundary conditions. + Can be { 0=dirichlet | 1=neumann | 2=periodic | 3=mirror }.a \see deriche(), vanvliet(). **/ - CImg& blur_box(const float boxsize, const bool boundary_conditions=true) { + CImg& blur_box(const float boxsize, const unsigned int boundary_conditions=1) { const float nboxsize = boxsize>=0?boxsize:-boxsize*cimg::max(_width,_height,_depth)/100; return blur_box(nboxsize,nboxsize,nboxsize,boundary_conditions); } //! Blur image with a box filter \newinstance. - CImg get_blur_box(const float boxsize, const bool boundary_conditions=true) const { + CImg get_blur_box(const float boxsize, const unsigned int boundary_conditions=1) const { return CImg(*this,false).blur_box(boxsize,boundary_conditions); } @@ -40038,8 +42046,8 @@ namespace cimg_library_suffixed { cimg_pragma_openmp(parallel for cimg_openmp_collapse(2) \ cimg_openmp_if(res._width>=(cimg_openmp_sizefactor)*32 && res._height*res._depth>=4) \ firstprivate(P,Q)) \ - cimg_forXYZ(res,x,y,z) _cimg_abort_try_openmp { \ - cimg_abort_test; \ + cimg_forXYZ(res,x,y,z) _cimg_abort_try_openmp2 { \ + cimg_abort_test2; \ cimg_def##N##x##N##x##N(res,x,y,z); \ tfloat *pP = P._data; cimg_forC(_guide,c) { cimg_get##N##x##N##x##N(_guide,x,y,z,c,pP,tfloat); pP+=N3; } \ const int x0 = x - rsize1, y0 = y - rsize1, z0 = z - rsize1, \ @@ -40058,14 +42066,14 @@ namespace cimg_library_suffixed { } \ if (sum_weights>1e-10) cimg_forC(res,c) res(x,y,z,c)/=(Tfloat)sum_weights; \ else cimg_forC(res,c) res(x,y,z,c) = (Tfloat)((*this)(x,y,z,c)); \ - } _cimg_abort_catch_openmp } + } _cimg_abort_catch_openmp2 } #define _cimg_blur_patch3d(N) { \ cimg_pragma_openmp(parallel for cimg_openmp_collapse(2) \ cimg_openmp_if(res._width>=(cimg_openmp_sizefactor)*32 && res._height*res._depth>=4) \ firstprivate(P,Q)) \ - cimg_forXYZ(res,x,y,z) _cimg_abort_try_openmp { \ - cimg_abort_test; \ + cimg_forXYZ(res,x,y,z) _cimg_abort_try_openmp2 { \ + cimg_abort_test2; \ cimg_def##N##x##N##x##N(res,x,y,z); \ tfloat *pP = P._data; cimg_forC(_guide,c) { cimg_get##N##x##N##x##N(_guide,x,y,z,c,pP,tfloat); pP+=N3; } \ const int x0 = x - rsize1, y0 = y - rsize1, z0 = z - rsize1, \ @@ -40085,13 +42093,13 @@ namespace cimg_library_suffixed { sum_weights+=weight_max; cimg_forC(res,c) res(x,y,z,c)+=(Tfloat)weight_max*(*this)(x,y,z,c); \ if (sum_weights>1e-10) cimg_forC(res,c) res(x,y,z,c)/=(Tfloat)sum_weights; \ else cimg_forC(res,c) res(x,y,z,c) = (Tfloat)((*this)(x,y,z,c)); \ - } _cimg_abort_catch_openmp } + } _cimg_abort_catch_openmp2 } #define _cimg_blur_patch2d_fast(N) { \ cimg_pragma_openmp(parallel for cimg_openmp_if(res._width>=(cimg_openmp_sizefactor)*32 && res._height>=4) \ firstprivate(P,Q)) \ - cimg_forXY(res,x,y) _cimg_abort_try_openmp { \ - cimg_abort_test; \ + cimg_forXY(res,x,y) _cimg_abort_try_openmp2 { \ + cimg_abort_test2; \ cimg_def##N##x##N(res,x,y); \ tfloat *pP = P._data; cimg_forC(_guide,c) { cimg_get##N##x##N(_guide,x,y,0,c,pP,tfloat); pP+=N2; } \ const int x0 = x - rsize1, y0 = y - rsize1, x1 = x + rsize2, y1 = y + rsize2; \ @@ -40109,13 +42117,13 @@ namespace cimg_library_suffixed { } \ if (sum_weights>1e-10) cimg_forC(res,c) res(x,y,c)/=(Tfloat)sum_weights; \ else cimg_forC(res,c) res(x,y,c) = (Tfloat)((*this)(x,y,c)); \ - } _cimg_abort_catch_openmp } + } _cimg_abort_catch_openmp2 } #define _cimg_blur_patch2d(N) { \ cimg_pragma_openmp(parallel for cimg_openmp_if(res._width>=(cimg_openmp_sizefactor)*32 && res._height>=4) \ firstprivate(P,Q)) \ - cimg_forXY(res,x,y) _cimg_abort_try_openmp { \ - cimg_abort_test; \ + cimg_forXY(res,x,y) _cimg_abort_try_openmp2 { \ + cimg_abort_test2; \ cimg_def##N##x##N(res,x,y); \ tfloat *pP = P._data; cimg_forC(_guide,c) { cimg_get##N##x##N(_guide,x,y,0,c,pP,tfloat); pP+=N2; } \ const int x0 = x - rsize1, y0 = y - rsize1, x1 = x + rsize2, y1 = y + rsize2; \ @@ -40134,7 +42142,7 @@ namespace cimg_library_suffixed { sum_weights+=weight_max; cimg_forC(res,c) res(x,y,c)+=(Tfloat)weight_max*(*this)(x,y,c); \ if (sum_weights>1e-10) cimg_forC(res,c) res(x,y,c)/=(Tfloat)sum_weights; \ else cimg_forC(res,c) res(x,y,c) = (Tfloat)((*this)(x,y,c)); \ - } _cimg_abort_catch_openmp } + } _cimg_abort_catch_openmp2 } typedef _cimg_tfloat tfloat; if (!is_sameXYZ(guide)) @@ -40176,8 +42184,8 @@ namespace cimg_library_suffixed { cimg_pragma_openmp(parallel for cimg_openmp_collapse(2) cimg_openmp_if(res._width>=(cimg_openmp_sizefactor)*32 && res._height*res._depth>=4) firstprivate(P,Q)) - cimg_forXYZ(res,x,y,z) _cimg_abort_try_openmp { // Fast - cimg_abort_test; + cimg_forXYZ(res,x,y,z) _cimg_abort_try_openmp2 { // Fast + cimg_abort_test2; P = _guide.get_crop(x - psize1,y - psize1,z - psize1,x + psize2,y + psize2,z + psize2,true); const int x0 = x - rsize1, y0 = y - rsize1, z0 = z - rsize1, x1 = x + rsize2, y1 = y + rsize2, z1 = z + rsize2; @@ -40194,13 +42202,13 @@ namespace cimg_library_suffixed { } if (sum_weights>1e-10) cimg_forC(res,c) res(x,y,z,c)/=(Tfloat)sum_weights; else cimg_forC(res,c) res(x,y,z,c) = (Tfloat)((*this)(x,y,z,c)); - } _cimg_abort_catch_openmp + } _cimg_abort_catch_openmp2 } else { cimg_pragma_openmp(parallel for cimg_openmp_collapse(2) cimg_openmp_if(res._width>=(cimg_openmp_sizefactor)*32 && res._height*res._depth>=4) firstprivate(P,Q)) - cimg_forXYZ(res,x,y,z) _cimg_abort_try_openmp { // Exact - cimg_abort_test; + cimg_forXYZ(res,x,y,z) _cimg_abort_try_openmp2 { // Exact + cimg_abort_test2; P = _guide.get_crop(x - psize1,y - psize1,z - psize1,x + psize2,y + psize2,z + psize2,true); const int x0 = x - rsize1, y0 = y - rsize1, z0 = z - rsize1, x1 = x + rsize2, y1 = y + rsize2, z1 = z + rsize2; @@ -40218,7 +42226,7 @@ namespace cimg_library_suffixed { sum_weights+=weight_max; cimg_forC(res,c) res(x,y,z,c)+=(Tfloat)weight_max*(*this)(x,y,z,c); if (sum_weights>1e-10) cimg_forC(res,c) res(x,y,z,c)/=(Tfloat)sum_weights; else cimg_forC(res,c) res(x,y,z,c) = (Tfloat)((*this)(x,y,z,c)); - } _cimg_abort_catch_openmp + } _cimg_abort_catch_openmp2 } } } else switch (patch_size) { // 2D @@ -40235,8 +42243,8 @@ namespace cimg_library_suffixed { if (is_fast_approx) { cimg_pragma_openmp(parallel for cimg_openmp_if(res._width>=(cimg_openmp_sizefactor)*32 && res._height>=4) firstprivate(P,Q)) - cimg_forXY(res,x,y) _cimg_abort_try_openmp { // Fast - cimg_abort_test; + cimg_forXY(res,x,y) _cimg_abort_try_openmp2 { // Fast + cimg_abort_test2; P = _guide.get_crop(x - psize1,y - psize1,x + psize2,y + psize2,true); const int x0 = x - rsize1, y0 = y - rsize1, x1 = x + rsize2, y1 = y + rsize2; tfloat sum_weights = 0; @@ -40252,12 +42260,12 @@ namespace cimg_library_suffixed { } if (sum_weights>1e-10) cimg_forC(res,c) res(x,y,c)/=(Tfloat)sum_weights; else cimg_forC(res,c) res(x,y,c) = (Tfloat)((*this)(x,y,c)); - } _cimg_abort_catch_openmp + } _cimg_abort_catch_openmp2 } else { cimg_pragma_openmp(parallel for cimg_openmp_if(res._width>=(cimg_openmp_sizefactor)*32 && res._height>=4) firstprivate(P,Q)) - cimg_forXY(res,x,y) _cimg_abort_try_openmp { // Exact - cimg_abort_test; + cimg_forXY(res,x,y) _cimg_abort_try_openmp2 { // Exact + cimg_abort_test2; P = _guide.get_crop(x - psize1,y - psize1,x + psize2,y + psize2,true); const int x0 = x - rsize1, y0 = y - rsize1, x1 = x + rsize2, y1 = y + rsize2; tfloat sum_weights = 0, weight_max = 0; @@ -40274,10 +42282,11 @@ namespace cimg_library_suffixed { sum_weights+=weight_max; cimg_forC(res,c) res(x,y,c)+=(Tfloat)weight_max*(*this)(x,y,c); if (sum_weights>1e-10) cimg_forC(res,c) res(x,y,c)/=(Tfloat)sum_weights; else cimg_forC(res,c) res(x,y,c) = (Tfloat)((*this)(x,y,c)); - } _cimg_abort_catch_openmp + } _cimg_abort_catch_openmp2 } } } + cimg_abort_test; return res.cut(val_min,val_max); } @@ -40584,7 +42593,7 @@ namespace cimg_library_suffixed { **/ CImgList get_gradient(const char *const axes=0, const int scheme=0) const { CImgList res; - char __axes[4] = { 0 }; + char __axes[4] = {}; const char *_axes = axes?axes:__axes; if (!axes) { unsigned int k = 0; @@ -40705,7 +42714,7 @@ namespace cimg_library_suffixed { **/ CImgList get_hessian(const char *const axes=0) const { CImgList res; - char __axes[12] = { 0 }; + char __axes[12] = {}; const char *_axes = axes?axes:__axes; if (!axes) { unsigned int k = 0; @@ -40850,12 +42859,12 @@ namespace cimg_library_suffixed { ix = (Incc - Ipcc)/2, iy = (Icnc - Icpc)/2, iz = (Iccn - Iccp)/2; - *(ptrd0++)+=ix*ix; - *(ptrd1++)+=ix*iy; - *(ptrd2++)+=ix*iz; - *(ptrd3++)+=iy*iy; - *(ptrd4++)+=iy*iz; - *(ptrd5++)+=iz*iz; + cimg_pragma_openmp(atomic) *(ptrd0++)+=ix*ix; + cimg_pragma_openmp(atomic) *(ptrd1++)+=ix*iy; + cimg_pragma_openmp(atomic) *(ptrd2++)+=ix*iz; + cimg_pragma_openmp(atomic) *(ptrd3++)+=iy*iy; + cimg_pragma_openmp(atomic) *(ptrd4++)+=iy*iz; + cimg_pragma_openmp(atomic) *(ptrd5++)+=iz*iz; } } } else { // Forward/backward finite differences @@ -40868,15 +42877,15 @@ namespace cimg_library_suffixed { CImg_3x3x3(I,Tfloat); cimg_for3x3x3(*this,x,y,z,c,I,Tfloat) { const Tfloat - ixf = Incc - Iccc, ixb = Iccc - Ipcc, - iyf = Icnc - Iccc, iyb = Iccc - Icpc, - izf = Iccn - Iccc, izb = Iccc - Iccp; - *(ptrd0++)+=(ixf*ixf + ixb*ixb)/2; - *(ptrd1++)+=(ixf*iyf + ixf*iyb + ixb*iyf + ixb*iyb)/4; - *(ptrd2++)+=(ixf*izf + ixf*izb + ixb*izf + ixb*izb)/4; - *(ptrd3++)+=(iyf*iyf + iyb*iyb)/2; - *(ptrd4++)+=(iyf*izf + iyf*izb + iyb*izf + iyb*izb)/4; - *(ptrd5++)+=(izf*izf + izb*izb)/2; + ixf = Incc - Iccc, ixb = Iccc - Ipcc, ixc = (Incc - Ipcc)/2, + iyf = Icnc - Iccc, iyb = Iccc - Icpc, iyc = (Icnc - Icpc)/2, + izf = Iccn - Iccc, izb = Iccc - Iccp, izc = (Iccn - Iccp)/2; + cimg_pragma_openmp(atomic) *(ptrd0++)+=(ixf*ixf + ixb*ixb)/2; + cimg_pragma_openmp(atomic) *(ptrd1++)+=ixc*iyc; + cimg_pragma_openmp(atomic) *(ptrd2++)+=ixc*izc; + cimg_pragma_openmp(atomic) *(ptrd3++)+=(iyf*iyf + iyb*iyb)/2; + cimg_pragma_openmp(atomic) *(ptrd4++)+=iyc*izc; + cimg_pragma_openmp(atomic) *(ptrd5++)+=(izf*izf + izb*izb)/2; } } } @@ -40892,9 +42901,9 @@ namespace cimg_library_suffixed { const Tfloat ix = (Inc - Ipc)/2, iy = (Icn - Icp)/2; - *(ptrd0++)+=ix*ix; - *(ptrd1++)+=ix*iy; - *(ptrd2++)+=iy*iy; + cimg_pragma_openmp(atomic) *(ptrd0++)+=ix*ix; + cimg_pragma_openmp(atomic) *(ptrd1++)+=ix*iy; + cimg_pragma_openmp(atomic) *(ptrd2++)+=iy*iy; } } } else { // Forward/backward finite differences (version 2) @@ -40905,11 +42914,11 @@ namespace cimg_library_suffixed { CImg_3x3(I,Tfloat); cimg_for3x3(*this,x,y,0,c,I,Tfloat) { const Tfloat - ixf = Inc - Icc, ixb = Icc - Ipc, - iyf = Icn - Icc, iyb = Icc - Icp; - *(ptrd0++)+=(ixf*ixf + ixb*ixb)/2; - *(ptrd1++)+=(ixf*iyf + ixf*iyb + ixb*iyf + ixb*iyb)/4; - *(ptrd2++)+=(iyf*iyf + iyb*iyb)/2; + ixf = Inc - Icc, ixb = Icc - Ipc, ixc = (Inc - Ipc)/2, + iyf = Icn - Icc, iyb = Icc - Icp, iyc = (Icn - Icp)/2; + cimg_pragma_openmp(atomic) *(ptrd0++)+=(ixf*ixf + ixb*ixb)/2; + cimg_pragma_openmp(atomic) *(ptrd1++)+=ixc*iyc; + cimg_pragma_openmp(atomic) *(ptrd2++)+=(iyf*iyf + iyb*iyb)/2; } } } @@ -41422,17 +43431,18 @@ namespace cimg_library_suffixed { CImg a_map(_width,_height,_depth,patch_image._depth>1?3:2); CImg is_updated(_width,_height,_depth,1,3); - CImg score(_width,_height,_depth); - CImg occ; + CImg score(_width,_height,_depth), penalty; const float _patch_penalization = cimg::abs(patch_penalization); const bool allow_identity = patch_penalization>=0; - if (_patch_penalization!=0) occ.assign(patch_image._width,patch_image._height,patch_image._depth,1,0); + if (_patch_penalization!=0) + penalty.assign(patch_image._width,patch_image._height,patch_image._depth,1,0); + const int psizew = (int)patch_width, psizew1 = psizew/2, psizew2 = psizew - psizew1 - 1, psizeh = (int)patch_height, psizeh1 = psizeh/2, psizeh2 = psizeh - psizeh1 - 1, psized = (int)patch_depth, psized1 = psized/2, psized2 = psized - psized1 - 1; - // Interleave image buffers to speed up patch comparison (cache-friendly). + // Interleave image buffers to speed up patch comparison (more cache-friendly). CImg in_this = get_permute_axes("cxyz"); in_this._width = _width*_spectrum; in_this._height = _height; @@ -41460,7 +43470,7 @@ namespace cimg_library_suffixed { a_map(x,y,z,0) = u; a_map(x,y,z,1) = v; a_map(x,y,z,2) = w; - score(x,y,z) = _matchpatch(in_this,in_patch,occ,patch_width,patch_height,patch_depth,_spectrum, + score(x,y,z) = _matchpatch(in_this,in_patch,penalty,patch_width,patch_height,patch_depth,_spectrum, x - cx1,y - cy1,z - cz1, u - cx1,v - cy1,w - cz1, u,v,w,0,allow_identity,cimg::type::inf()); @@ -41481,7 +43491,7 @@ namespace cimg_library_suffixed { a_map(x,y,z,0) = u; a_map(x,y,z,1) = v; a_map(x,y,z,2) = w; - score(x,y,z) = _matchpatch(in_this,in_patch,occ,patch_width,patch_height,patch_depth,_spectrum, + score(x,y,z) = _matchpatch(in_this,in_patch,penalty,patch_width,patch_height,patch_depth,_spectrum, x - cx1,y - cy1,z - cz1, u - cx1,v - cy1,w - cz1, u,v,w,0,allow_identity,cimg::type::inf()); @@ -41493,11 +43503,10 @@ namespace cimg_library_suffixed { cimg_abort_init; for (unsigned int iter = 0; iter=(cimg_openmp_sizefactor)*64 && - iter=(cimg_openmp_sizefactor)*64)) { cimg_uint64 rng = (cimg::_rand(),cimg::rng()); #if cimg_use_openmp!=0 @@ -41522,79 +43531,79 @@ namespace cimg_library_suffixed { const float best_score0 = score(x,y,z); float best_score = best_score0, s; - if (x>0 && (is_updated(x - 1,y,z)&cmask)) { // Compare with left neighbor + if (is_forward && x>0 && (is_updated(x - 1,y,z)&cmask)) { // Compare with left neighbor u = a_map(x - 1,y,z,0); v = a_map(x - 1,y,z,1); w = a_map(x - 1,y,z,2); if (u>=cx1 - 1 && u=cy1 && v=cz1 && w0 && (is_updated(x,y - 1,z)&cmask)) { // Compare with up neighbor + if (is_forward && y>0 && (is_updated(x,y - 1,z)&cmask)) { // Compare with up neighbor u = a_map(x,y - 1,z,0); v = a_map(x,y - 1,z,1); w = a_map(x,y - 1,z,2); if (u>=cx1 && u=cy1 - 1 && v=cz1 && w0 && (is_updated(x,y,z - 1)&cmask)) { // Compare with backward neighbor + if (is_forward && z>0 && (is_updated(x,y,z - 1)&cmask)) { // Compare with backward neighbor u = a_map(x,y,z - 1,0); v = a_map(x,y,z - 1,1); w = a_map(x,y,z - 1,2); if (u>=cx1 && u=cy1 && v=cz1 - 1 && w=cx1 + 1 && u=cy1 && v=cz1 && w=cx1 && u=cy1 + 1 && v=cz1 && w=cx1 && u=cy1 && v=cz1 + 1 && w=(cimg_openmp_sizefactor)*64)) + cimg_forXYZ(score,x,y,z) { + const float p_score = score(x,y,z); + const int + cx1 = x<=psizew1?x:(x::inf()); + if (n_score!=p_score) { score(x,y,z) = n_score; is_updated(x,y) = 3; } + } } } else { // 2D version @@ -41651,7 +43681,7 @@ namespace cimg_library_suffixed { v = cimg::cut((int)guide(x,y,1),cy1,patch_image.height() - 1 - cy2); a_map(x,y,0) = u; a_map(x,y,1) = v; - score(x,y) = _matchpatch(in_this,in_patch,occ,patch_width,patch_height,_spectrum, + score(x,y) = _matchpatch(in_this,in_patch,penalty,patch_width,patch_height,_spectrum, x - cx1,y - cy1,u - cx1,v - cy1, u,v,0,allow_identity,cimg::type::inf()); } else cimg_pragma_openmp(parallel cimg_openmp_if_size(_width,64)) { @@ -41669,7 +43699,7 @@ namespace cimg_library_suffixed { v = (int)cimg::round(cimg::rand(cy1,patch_image.height() - 1 - cy2,&rng)); a_map(x,y,0) = u; a_map(x,y,1) = v; - score(x,y) = _matchpatch(in_this,in_patch,occ,patch_width,patch_height,_spectrum, + score(x,y) = _matchpatch(in_this,in_patch,penalty,patch_width,patch_height,_spectrum, x - cx1,y - cy1,u - cx1,v - cy1, u,v,0,allow_identity,cimg::type::inf()); } @@ -41680,11 +43710,10 @@ namespace cimg_library_suffixed { cimg_abort_init; for (unsigned int iter = 0; iter=(cimg_openmp_sizefactor)*64 && - iter=(cimg_openmp_sizefactor)*64)) { cimg_uint64 rng = (cimg::_rand(),cimg::rng()); #if cimg_use_openmp!=0 @@ -41706,45 +43735,45 @@ namespace cimg_library_suffixed { const float best_score0 = score(x,y); float best_score = best_score0, s; - if (x>0 && (is_updated(x - 1,y)&cmask)) { // Compare with left neighbor + if (is_forward && x>0 && (is_updated(x - 1,y)&cmask)) { // Compare with left neighbor u = a_map(x - 1,y,0); v = a_map(x - 1,y,1); if (u>=cx1 - 1 && u=cy1 && v0 && (is_updated(x,y - 1)&cmask)) { // Compare with up neighbor + if (is_forward && y>0 && (is_updated(x,y - 1)&cmask)) { // Compare with up neighbor u = a_map(x,y - 1,0); v = a_map(x,y - 1,1); if (u>=cx1 && u=cy1 - 1 && v=cx1 + 1 && u=cy1 && v=cx1 && u=cy1 + 1 && v=(cimg_openmp_sizefactor)*64)) + cimg_forXY(score,x,y) { + const float p_score = score(x,y); + const int + cx1 = x<=psizew1?x:(x::inf()); + if (n_score!=p_score) { score(x,y) = n_score; is_updated(x,y) = 3; } + } } } @@ -41790,7 +43837,7 @@ namespace cimg_library_suffixed { } // Compute SSD between two patches in different images. - static float _matchpatch(const CImg& img1, const CImg& img2, const CImg& occ, + static float _matchpatch(const CImg& img1, const CImg& img2, const CImg& penalty, const unsigned int psizew, const unsigned int psizeh, const unsigned int psized, const unsigned int psizec, const int x1, const int y1, const int z1, @@ -41799,7 +43846,7 @@ namespace cimg_library_suffixed { const float patch_penalization, const bool allow_identity, const float max_score) { // 3D version - if (!allow_identity && cimg::hypot((float)x1-x2,(float)y1-y2,(float)z1-z2)::inf(); const T *p1 = img1.data(x1*psizec,y1,z1), *p2 = img2.data(x2*psizec,y2,z2); const unsigned int psizewc = psizew*psizec; @@ -41819,10 +43866,10 @@ namespace cimg_library_suffixed { p1+=offy1; p2+=offy2; } return patch_penalization==0?ssd:cimg::sqr(std::sqrt(ssd) + - patch_penalization*psizewc*psizeh*psized*occ(xc,yc,zc)/100); + patch_penalization*psizewc*psizeh*psized*penalty(xc,yc,zc)/100); } - static float _matchpatch(const CImg& img1, const CImg& img2, const CImg& occ, + static float _matchpatch(const CImg& img1, const CImg& img2, const CImg& penalty, const unsigned int psizew, const unsigned int psizeh, const unsigned int psizec, const int x1, const int y1, const int x2, const int y2, @@ -41845,7 +43892,7 @@ namespace cimg_library_suffixed { p1+=offx1; p2+=offx2; } return patch_penalization==0?ssd:cimg::sqr(std::sqrt(ssd) + - patch_penalization*psizewc*psizeh*occ(xc,yc)/100); + patch_penalization*psizewc*psizeh*penalty(xc,yc)/100); } //! Compute Euclidean distance function to a specified value. @@ -45043,7 +47090,7 @@ namespace cimg_library_suffixed { \param pattern An integer whose bits describe the line pattern. \param init_hatch Tells if a reinitialization of the hash state must be done. **/ - template + template CImg& draw_line(CImg& zbuffer, int x0, int y0, const float z0, int x1, int y1, const float z1, @@ -45147,11 +47194,10 @@ namespace cimg_library_suffixed { if (std::min(y0,y1)>=height() || std::max(y0,y1)<0 || std::min(x0,x1)>=width() || std::max(x0,x1)<0) return *this; - int - w1 = width() - 1, h1 = height() - 1, - dx01 = x1 - x0, dy01 = y1 - y0; - int - dtx01 = tx1 - tx0, dty01 = ty1 - ty0; + int w1 = width() - 1, h1 = height() - 1; + longT + dx01 = (longT)x1 - x0, dy01 = (longT)y1 - y0, + dtx01 = (longT)tx1 - tx0, dty01 = (longT)ty1 - ty0; const bool is_horizontal = cimg::abs(dx01)>cimg::abs(dy01); if (is_horizontal) cimg::swap(x0,y0,x1,y1,w1,h1,dx01,dy01); @@ -45165,15 +47211,17 @@ namespace cimg_library_suffixed { if (init_hatch) hatch = ~0U - (~0U>>1); cimg_init_scanline(opacity); - const int - step = y0<=y1?1:-1, hdy01 = dy01*cimg::sign(dx01)/2, - hdy01tx = dy01*cimg::sign(dtx01)/2, hdy01ty = dy01*cimg::sign(dty01)/2, - cy0 = cimg::cut(y0,0,h1), cy1 = cimg::cut(y1,0,h1) + step; + const int step = y0<=y1?1:-1, cy0 = cimg::cut(y0,0,h1), cy1 = cimg::cut(y1,0,h1) + step; + const longT + hdy01 = dy01*cimg::sign(dx01)/2, + hdy01tx = dy01*cimg::sign(dtx01)/2, + hdy01ty = dy01*cimg::sign(dty01)/2; + dy01+=dy01?0:1; for (int y = cy0; y!=cy1; y+=step) { - const int - yy0 = y - y0, + const longT + yy0 = (longT)y - y0, x = x0 + (dx01*yy0 + hdy01)/dy01, tx = tx0 + (dtx01*yy0 + hdy01tx)/dy01, ty = ty0 + (dty01*yy0 + hdy01ty)/dy01; @@ -45227,9 +47275,8 @@ namespace cimg_library_suffixed { if (std::min(y0,y1)>=height() || std::max(y0,y1)<0 || std::min(x0,x1)>=width() || std::max(x0,x1)<0) return *this; float iz0 = 1/z0, iz1 = 1/z1; - int - w1 = width() - 1, h1 = height() - 1, - dx01 = x1 - x0, dy01 = y1 - y0; + int w1 = width() - 1, h1 = height() - 1; + longT dx01 = (longT)x1 - x0, dy01 = (longT)y1 - y0; float diz01 = iz1 - iz0, txz0 = tx0*iz0, txz1 = tx1*iz1, @@ -45248,14 +47295,14 @@ namespace cimg_library_suffixed { if (init_hatch) hatch = ~0U - (~0U>>1); cimg_init_scanline(opacity); - const int - step = y0<=y1?1:-1, hdy01 = dy01*cimg::sign(dx01)/2, - cy0 = cimg::cut(y0,0,h1), cy1 = cimg::cut(y1,0,h1) + step; + const int step = y0<=y1?1:-1, cy0 = cimg::cut(y0,0,h1), cy1 = cimg::cut(y1,0,h1) + step; + const longT hdy01 = dy01*cimg::sign(dx01)/2; + dy01+=dy01?0:1; for (int y = cy0; y!=cy1; y+=step) { - const int - yy0 = y - y0, + const longT + yy0 = (longT)y - y0, x = x0 + (dx01*yy0 + hdy01)/dy01; const float iz = iz0 + diz01*yy0/dy01, @@ -45322,9 +47369,8 @@ namespace cimg_library_suffixed { if (std::min(y0,y1)>=height() || std::max(y0,y1)<0 || std::min(x0,x1)>=width() || std::max(x0,x1)<0) return *this; float iz0 = 1/z0, iz1 = 1/z1; - int - w1 = width() - 1, h1 = height() - 1, - dx01 = x1 - x0, dy01 = y1 - y0; + int w1 = width() - 1, h1 = height() - 1; + longT dx01 = (longT)x1 - x0, dy01 = (longT)y1 - y0; float diz01 = iz1 - iz0, txz0 = tx0*iz0, txz1 = tx1*iz1, @@ -45343,14 +47389,14 @@ namespace cimg_library_suffixed { if (init_hatch) hatch = ~0U - (~0U>>1); cimg_init_scanline(opacity); - const int - step = y0<=y1?1:-1, hdy01 = dy01*cimg::sign(dx01)/2, - cy0 = cimg::cut(y0,0,h1), cy1 = cimg::cut(y1,0,h1) + step; + const int step = y0<=y1?1:-1, cy0 = cimg::cut(y0,0,h1), cy1 = cimg::cut(y1,0,h1) + step; + const longT hdy01 = dy01*cimg::sign(dx01)/2; + dy01+=dy01?0:1; for (int y = cy0; y!=cy1; y+=step) { - const int - yy0 = y - y0, + const longT + yy0 = (longT)y - y0, x = x0 + (dx01*yy0 + hdy01)/dy01; const float iz = iz0 + diz01*yy0/dy01, @@ -45715,17 +47761,19 @@ namespace cimg_library_suffixed { const int h1 = height() - 1, - dx01 = x1 - x0, dx02 = x2 - x0, dx12 = x2 - x1, - dy01 = std::max(1,y1 - y0), dy02 = std::max(1,y2 - y0), dy12 = std::max(1,y2 - y1), - cy0 = cimg::cut(y0,0,h1), cy2 = cimg::cut(y2,0,h1), + cy0 = cimg::cut(y0,0,h1), cy2 = cimg::cut(y2,0,h1); + const longT + dx01 = (longT)x1 - x0, dx02 = (longT)x2 - x0, dx12 = (longT)x2 - x1, + dy01 = std::max((longT)1,(longT)y1 - y0), + dy02 = std::max((longT)1,(longT)y2 - y0), + dy12 = std::max((longT)1,(longT)y2 - y1), hdy01 = dy01*cimg::sign(dx01)/2, hdy02 = dy02*cimg::sign(dx02)/2, hdy12 = dy12*cimg::sign(dx12)/2; - const float cbs = cimg::cut(brightness,0,2); cimg_init_scanline(opacity); for (int y = cy0; y<=cy2; ++y) { - const int yy0 = y - y0, yy1 = y - y1; - int + const longT yy0 = (longT)y - y0, yy1 = (longT)y - y1; + longT xm = yxM) cimg::swap(xm,xM); @@ -45829,11 +47877,12 @@ namespace cimg_library_suffixed { if (y1>y2) cimg::swap(x1,x2,y1,y2,iz1,iz2); if (y2<0 || y0>=height() || cimg::min(x0,x1,x2)>=width() || cimg::max(x0,x1,x2)<0 || !opacity) return *this; - const int - w1 = width() - 1, h1 = height() - 1, - dx01 = x1 - x0, dx02 = x2 - x0, dx12 = x2 - x1, - dy01 = std::max(1,y1 - y0), dy02 = std::max(1,y2 - y0), dy12 = std::max(1,y2 - y1), - cy0 = cimg::cut(y0,0,h1), cy2 = cimg::cut(y2,0,h1), + const int w1 = width() - 1, h1 = height() - 1, cy0 = cimg::cut(y0,0,h1), cy2 = cimg::cut(y2,0,h1); + const longT + dx01 = (longT)x1 - x0, dx02 = (longT)x2 - x0, dx12 = (longT)x2 - x1, + dy01 = std::max((longT)1,(longT)y1 - y0), + dy02 = std::max((longT)1,(longT)y2 - y0), + dy12 = std::max((longT)1,(longT)y2 - y1), hdy01 = dy01*cimg::sign(dx01)/2, hdy02 = dy02*cimg::sign(dx02)/2, hdy12 = dy12*cimg::sign(dx12)/2; const float diz01 = iz1 - iz0, diz02 = iz2 - iz0, diz12 = iz2 - iz1; @@ -45841,8 +47890,8 @@ namespace cimg_library_suffixed { cimg_init_scanline(opacity); for (int y = cy0; y<=cy2; ++y) { - const int yy0 = y - y0, yy1 = y - y1; - int + const longT yy0 = (longT)y - y0, yy1 = (longT)y - y1; + longT xm = yxM) cimg::swap(xm,xM,izm,izM); if (xM>=0 && xm<=w1) { const int - cxm = cimg::cut(xm,0,w1), - cxM = cimg::cut(xM,0,w1); + cxm = (int)cimg::cut(xm,(longT)0,(longT)w1), + cxM = (int)cimg::cut(xM,(longT)0,(longT)w1); T *ptrd = data(cxm,y); tz *ptrz = zbuffer.data(cxm,y); - const int dxmM = std::max(1,xM - xm); + const longT dxmM = std::max((longT)1,xM - xm); const float dizmM = izM - izm; for (int x = cxm; x<=cxM; ++x) { - const int xxm = x - xm; + const longT xxm = x - xm; const float iz = izm + dizmM*xxm/dxmM; if (iz>=*ptrz) { *ptrz = (tz)iz; @@ -45909,19 +47958,20 @@ namespace cimg_library_suffixed { if (y1>y2) cimg::swap(x1,x2,y1,y2,bs1,bs2); if (y2<0 || y0>=height() || cimg::min(x0,x1,x2)>=width() || cimg::max(x0,x1,x2)<0 || !opacity) return *this; - const int - w1 = width() - 1, h1 = height() - 1, - dx01 = x1 - x0, dx02 = x2 - x0, dx12 = x2 - x1, - dy01 = std::max(1,y1 - y0), dy02 = std::max(1,y2 - y0), dy12 = std::max(1,y2 - y1), - cy0 = cimg::cut(y0,0,h1), cy2 = cimg::cut(y2,0,h1), + const int w1 = width() - 1, h1 = height() - 1, cy0 = cimg::cut(y0,0,h1), cy2 = cimg::cut(y2,0,h1); + const longT + dx01 = (longT)x1 - x0, dx02 = (longT)x2 - x0, dx12 = (longT)x2 - x1, + dy01 = std::max((longT)1,(longT)y1 - y0), + dy02 = std::max((longT)1,(longT)y2 - y0), + dy12 = std::max((longT)1,(longT)y2 - y1), hdy01 = dy01*cimg::sign(dx01)/2, hdy02 = dy02*cimg::sign(dx02)/2, hdy12 = dy12*cimg::sign(dx12)/2; const float dbs01 = bs1 - bs0, dbs02 = bs2 - bs0, dbs12 = bs2 - bs1; cimg_init_scanline(opacity); for (int y = cy0; y<=cy2; ++y) { - const int yy0 = y - y0, yy1 = y - y1; - int + const longT yy0 = (longT)y - y0, yy1 = (longT)y - y1; + longT xm = yxM) cimg::swap(xm,xM,bsm,bsM); if (xM>=0 && xm<=w1) { const int - cxm = cimg::cut(xm,0,w1), - cxM = cimg::cut(xM,0,w1); + cxm = (int)cimg::cut(xm,(longT)0,(longT)w1), + cxM = (int)cimg::cut(xM,(longT)0,(longT)w1); T *ptrd = data(cxm,y); - const int dxmM = std::max(1,xM - xm); + const longT dxmM = std::max((longT)1,xM - xm); const float dbsmM = bsM - bsm; for (int x = cxm; x<=cxM; ++x) { - const int xxm = x - xm; + const longT xxm = (longT)x - xm; const float cbs = cimg::cut(bsm + dbsmM*xxm/dxmM,0,2); cimg_forC(*this,c) { const Tfloat val = cbs<=1?color[c]*cbs:(2 - cbs)*color[c] + (cbs - 1)*_sc_maxval; @@ -46042,17 +48092,64 @@ namespace cimg_library_suffixed { \param color3 Pointer to \c spectrum() consecutive values of type \c T, defining the color of the third vertex. \param opacity Drawing opacity. **/ - template - CImg& draw_triangle(const int x0, const int y0, - const int x1, const int y1, - const int x2, const int y2, - const tc1 *const color1, - const tc2 *const color2, - const tc3 *const color3, + template + CImg& draw_triangle(int x0, int y0, + int x1, int y1, + int x2, int y2, + const tc *color0, + const tc *color1, + const tc *color2, const float opacity=1) { - const unsigned char one = 1; - cimg_forC(*this,c) - get_shared_channel(c).draw_triangle(x0,y0,x1,y1,x2,y2,&one,color1[c],color2[c],color3[c],opacity); + typedef typename cimg::superset::type stc; + if (is_empty()) return *this; + if (!color0 || !color1 || !color2) + throw CImgArgumentException(_cimg_instance + "draw_triangle(): One of the specified color is (null).", + cimg_instance); + + if (y0>y1) cimg::swap(x0,x1,y0,y1,color0,color1); + if (y0>y2) cimg::swap(x0,x2,y0,y2,color0,color2); + if (y1>y2) cimg::swap(x1,x2,y1,y2,color1,color2); + if (y2<0 || y0>=height() || cimg::min(x0,x1,x2)>=width() || cimg::max(x0,x1,x2)<0 || !opacity) return *this; + + const int w1 = width() - 1, h1 = height() - 1, cy0 = cimg::cut(y0,0,h1), cy2 = cimg::cut(y2,0,h1); + const longT + dx01 = (longT)x1 - x0, dx02 = (longT)x2 - x0, dx12 = (longT)x2 - x1, + dy01 = std::max((longT)1,(longT)y1 - y0), + dy02 = std::max((longT)1,(longT)y2 - y0), + dy12 = std::max((longT)1,(longT)y2 - y1), + hdy01 = dy01*cimg::sign(dx01)/2, hdy02 = dy02*cimg::sign(dx02)/2, hdy12 = dy12*cimg::sign(dx12)/2; + cimg_init_scanline(opacity); + + cimg_forC(*this,c) { + const stc dcolor01 = color1[c] - color0[c], dcolor02 = color2[c] - color0[c], dcolor12 = color2[c] - color1[c]; + + for (int y = cy0; y<=cy2; ++y) { + const longT yy0 = (longT)y - y0, yy1 = (longT)y - y1; + longT + xm = yxM) cimg::swap(xm,xM,colorm,colorM); + if (xM>=0 && xm<=w1) { + const int + cxm = (int)cimg::cut(xm,(longT)0,(longT)w1), + cxM = (int)cimg::cut(xM,(longT)0,(longT)w1); + T *ptrd = data(cxm,y); + const longT dxmM = std::max((longT)1,xM - xm); + const stc dcolormM = colorM - colorm; + + for (int x = cxm; x<=cxM; ++x) { + const longT xxm = (longT)x - xm; + const stc col = colorm + dcolormM*xxm/dxmM; + ptrd[c*_sc_whd] = (T)(opacity>=1?col:col*_sc_nopacity + ptrd[c*_sc_whd]*_sc_copacity); + ++ptrd; + } + } + } + } return *this; } @@ -47838,12 +49935,11 @@ namespace cimg_library_suffixed { CImg& draw_text(const int x0, const int y0, const char *const text, const tc1 *const foreground_color, const tc2 *const background_color, - const float opacity, const CImgList& font, ...) { - if (!font) return *this; + const float opacity, const CImgList* const font, ...) { + if (!font || !*font) return *this; CImg tmp(2048); - std::va_list ap; va_start(ap,font); - cimg_vsnprintf(tmp,tmp._width,text,ap); va_end(ap); - return _draw_text(x0,y0,tmp,foreground_color,background_color,opacity,font,false); + std::va_list ap; va_start(ap,font); cimg_vsnprintf(tmp,tmp._width,text,ap); va_end(ap); + return _draw_text(x0,y0,tmp,foreground_color,background_color,opacity,*font,false); } //! Draw a text string \overloading. @@ -47854,12 +49950,11 @@ namespace cimg_library_suffixed { CImg& draw_text(const int x0, const int y0, const char *const text, const tc *const foreground_color, const int, - const float opacity, const CImgList& font, ...) { - if (!font) return *this; + const float opacity, const CImgList* const font, ...) { + if (!font || !*font) return *this; CImg tmp(2048); - std::va_list ap; va_start(ap,font); - cimg_vsnprintf(tmp,tmp._width,text,ap); va_end(ap); - return _draw_text(x0,y0,tmp,foreground_color,(tc*)0,opacity,font,false); + std::va_list ap; va_start(ap,font); cimg_vsnprintf(tmp,tmp._width,text,ap); va_end(ap); + return _draw_text(x0,y0,tmp,foreground_color,(tc*)0,opacity,*font,false); } //! Draw a text string \overloading. @@ -47870,12 +49965,11 @@ namespace cimg_library_suffixed { CImg& draw_text(const int x0, const int y0, const char *const text, const int, const tc *const background_color, - const float opacity, const CImgList& font, ...) { - if (!font) return *this; + const float opacity, const CImgList* const font, ...) { + if (!font || !*font) return *this; CImg tmp(2048); - std::va_list ap; va_start(ap,font); - cimg_vsnprintf(tmp,tmp._width,text,ap); va_end(ap); - return _draw_text(x0,y0,tmp,(tc*)0,background_color,opacity,font,false); + std::va_list ap; va_start(ap,font); cimg_vsnprintf(tmp,tmp._width,text,ap); va_end(ap); + return _draw_text(x0,y0,tmp,(tc*)0,background_color,opacity,*font,false); } //! Draw a text string \overloading. @@ -47888,7 +49982,7 @@ namespace cimg_library_suffixed { \param background_color Array of spectrum() values of type \c T, defining the background color (0 means 'transparent'). \param opacity Drawing opacity. - \param font_height Height of the text font (exact match for 13,23,53,103, interpolated otherwise). + \param font_height Height of the text font (exact match for 13,32,64,128, interpolated otherwise). **/ template CImg& draw_text(const int x0, const int y0, @@ -47897,8 +49991,7 @@ namespace cimg_library_suffixed { const float opacity=1, const unsigned int font_height=13, ...) { if (!font_height) return *this; CImg tmp(2048); - std::va_list ap; va_start(ap,font_height); - cimg_vsnprintf(tmp,tmp._width,text,ap); va_end(ap); + std::va_list ap; va_start(ap,font_height); cimg_vsnprintf(tmp,tmp._width,text,ap); va_end(ap); const CImgList& font = CImgList::font(font_height,true); _draw_text(x0,y0,tmp,foreground_color,background_color,opacity,font,true); return *this; @@ -47913,8 +50006,7 @@ namespace cimg_library_suffixed { if (!font_height) return *this; cimg::unused(background_color); CImg tmp(2048); - std::va_list ap; va_start(ap,font_height); - cimg_vsnprintf(tmp,tmp._width,text,ap); va_end(ap); + std::va_list ap; va_start(ap,font_height); cimg_vsnprintf(tmp,tmp._width,text,ap); va_end(ap); return draw_text(x0,y0,"%s",foreground_color,(const tc*)0,opacity,font_height,tmp._data); } @@ -47926,8 +50018,7 @@ namespace cimg_library_suffixed { const float opacity=1, const unsigned int font_height=13, ...) { if (!font_height) return *this; CImg tmp(2048); - std::va_list ap; va_start(ap,font_height); - cimg_vsnprintf(tmp,tmp._width,text,ap); va_end(ap); + std::va_list ap; va_start(ap,font_height); cimg_vsnprintf(tmp,tmp._width,text,ap); va_end(ap); return draw_text(x0,y0,"%s",(tc*)0,background_color,opacity,font_height,tmp._data); } @@ -47937,12 +50028,7 @@ namespace cimg_library_suffixed { const tc1 *const foreground_color, const tc2 *const background_color, const float opacity, const CImgList& font, const bool is_native_font) { - if (!text) return *this; - if (!font) - throw CImgArgumentException(_cimg_instance - "draw_text(): Empty specified font.", - cimg_instance); - + if (!text || !font) return *this; const unsigned int text_length = (unsigned int)std::strlen(text); const int padding_x = font[0]._height<48?1:font[0]._height<128?(int)std::ceil(font[0]._height/51.0f + 0.745f):4; unsigned char o_ch, ch = 0; @@ -47957,13 +50043,20 @@ namespace cimg_library_suffixed { for (unsigned int i = 0; iw) w = x; x = 0; break; - case '\t' : x+=4*font[(int)' ']._width; break; - case ' ' : x+=font[(int)' ']._width; break; + case '\n' : + if (font._width>10) y+=font[10]._height; else y+=font[0]._height; + if (x>w) w = x; + x = 0; + break; + case '\t' : + if (font._width>32) x+=4*font[32]._width; else x+=4*font[0]._width; + break; + case ' ' : + if (font._width>32) x+=font[32]._width; else x+=font[0]._width; + break; default : if (ch'9')) || o_ch==';' || o_ch==':' || o_ch=='!') @@ -48010,9 +50103,18 @@ namespace cimg_library_suffixed { for (unsigned int i = 0; i10) y+=font[10]._height; else y+=font[0]._height; + x = x0; + break; + case '\t' : + case ' ' : { + const unsigned int + lw = (ch=='\t'?4:1)*font[font._width>32?32:0]._width, + lh = font[font._width>32?32:0]._height; + if (background_color) draw_rectangle(x,y,x + lw - 1,y + lh - 1,background_color,opacity); + x+=lw; + } break; default : if (ch letter = font[ch]; if (letter) { @@ -48023,7 +50125,7 @@ namespace cimg_library_suffixed { const unsigned int cmin = std::min(_spectrum,letter._spectrum); if (foreground_color) for (unsigned int c = 0; c& ref, const float tolerance2) const { const T *ptr1 = data(x,y,z), *ptr2 = ref._data; - const unsigned long off = _width*_height*_depth; + const ulongT off = _width*_height*_depth; float diff = 0; cimg_forC(*this,c) { diff += cimg::sqr(*ptr1 - *(ptr2++)); ptr1+=off; } return diff<=tolerance2; @@ -48778,7 +50880,7 @@ namespace cimg_library_suffixed { \param y0 Y-coordinate of the upper-left pixel. \param x1 X-coordinate of the lower-right pixel. \param y1 Y-coordinate of the lower-right pixel. - \param colormap Colormap. + \param palette Colormap. \param opacity Drawing opacity. \param z0r Real part of the upper-left fractal vertex. \param z0i Imaginary part of the upper-left fractal vertex. @@ -49267,7 +51369,7 @@ namespace cimg_library_suffixed { if (colors._width>primitives._width) { static CImg default_light_texture; static const tc *lptr = 0; - static tc ref_values[64] = { 0 }; + static tc ref_values[64] = {}; const CImg& img = colors.back(); bool is_same_texture = (lptr==img._data); if (is_same_texture) @@ -51142,15 +53244,16 @@ namespace cimg_library_suffixed { Tint m0 = (Tint)cimg::type::max(), M0 = (Tint)cimg::type::min(); if (!normalization) { m0 = 0; M0 = 255; } else if (normalization==2) { m0 = (Tint)disp._min; M0 = (Tint)disp._max; } - else + else { cimg_for(img2d,ptr,Tuchar) if (!cimg::type::is_inf(*ptr) && !cimg::type::is_nan(*ptr)) { if (*ptr<(Tuchar)m0) m0 = *ptr; if (*ptr>(Tuchar)M0) M0 = *ptr; } + } const T - val_minf = (T)(normalization==1 || normalization==3?m0 - (M0 - m0)*20 - 1:m0), - val_pinf = (T)(normalization==1 || normalization==3?M0 + (M0 - m0)*20 + 1:M0); + val_minf = (T)(normalization==1 || normalization==3?m0 - cimg::abs(m0):m0), + val_pinf = (T)(normalization==1 || normalization==3?M0 + cimg::abs(M0):M0); if (is_nan) cimg_for(img2d,ptr,Tuchar) if (cimg::type::is_nan(*ptr)) *ptr = val_minf; // Replace NaN values @@ -51314,25 +53417,29 @@ namespace cimg_library_suffixed { (double)(*this)(x,0,0,_spectrum - 1)); else { cimg_snprintf(message,message._width,"Value[%u:%g] = ( ",x,cx); - cimg_forC(*this,c) cimg_sprintf(message._data + std::strlen(message),"%g ",(double)(*this)(x,0,0,c)); - cimg_sprintf(message._data + std::strlen(message),")"); + unsigned int len = (unsigned int)std::strlen(message); + cimg_forC(*this,c) + cimg_snprintf(message._data + len,message._width - len,"%g ",(double)(*this)(x,0,0,c)); + len = std::strlen(message); + cimg_snprintf(message._data + len,message._width - len,")"); } if (x0>=0 && x1>=0) { const unsigned int nx0 = (unsigned int)(x0<=x1?x0:x1), nx1 = (unsigned int)(x0<=x1?x1:x0), ny0 = (unsigned int)(y0<=y1?y0:y1), - ny1 = (unsigned int)(y0<=y1?y1:y0); + ny1 = (unsigned int)(y0<=y1?y1:y0), + len = (unsigned int)std::strlen(message); const double cx0 = nxmin + nx0*(nxmax - nxmin)/std::max((ulongT)1,siz - 1), cx1 = nxmin + (nx1 + one)*(nxmax - nxmin)/std::max((ulongT)1,siz - 1), cy0 = nymax - ny0*(nymax - nymin)/(visu._height - 32), cy1 = nymax - ny1*(nymax - nymin)/(visu._height - 32); if (y0>=0 && y1>=0) - cimg_sprintf(message._data + std::strlen(message)," - Range ( %u:%g, %g ) - ( %u:%g, %g )", + cimg_snprintf(message._data + len,message._width - len," - Range ( %u:%g, %g ) - ( %u:%g, %g )", x0,cx0,cy0,x1 + one,cx1,cy1); else - cimg_sprintf(message._data + std::strlen(message)," - Range [ %u:%g - %u:%g ]", + cimg_snprintf(message._data + len,message._width - len," - Range [ %u:%g - %u:%g ]", x0,cx0,x1 + one,cx1); } text.assign().draw_text(0,0,message,white,ngray,1,13).resize(-100,-100,1,3); @@ -51517,9 +53624,11 @@ namespace cimg_library_suffixed { else if (!cimg::strcasecmp(ext,"tif") || !cimg::strcasecmp(ext,"tiff")) load_tiff(filename); else if (!cimg::strcasecmp(ext,"exr")) load_exr(filename); - else if (!cimg::strcasecmp(ext,"cr2") || + else if (!cimg::strcasecmp(ext,"arw") || + !cimg::strcasecmp(ext,"cr2") || !cimg::strcasecmp(ext,"crw") || !cimg::strcasecmp(ext,"dcr") || + !cimg::strcasecmp(ext,"dng") || !cimg::strcasecmp(ext,"mrw") || !cimg::strcasecmp(ext,"nef") || !cimg::strcasecmp(ext,"orf") || @@ -51775,6 +53884,7 @@ namespace cimg_library_suffixed { "load_bmp(): Specified filename is (null).", cimg_instance); + const ulongT fsiz = file?(ulongT)cimg_max_buf_size:(ulongT)cimg::fsize(filename); std::FILE *const nfile = file?file:cimg::fopen(filename,"rb"); CImg header(54); cimg::fread(header._data,54,nfile); @@ -51811,6 +53921,13 @@ namespace cimg_library_suffixed { cimg_iobuffer = (ulongT)24*1024*1024, buf_size = (ulongT)cimg::abs(dy)*(dx_bytes + align_bytes); + if (buf_size>fsiz) + throw CImgIOException(_cimg_instance + "load_bmp(): File size %lu for filename '%s' does not match " + "encoded image dimensions (%d,%d).", + cimg_instance, + (long)fsiz,filename?filename:"(FILE*)",dx,dy); + CImg colormap; if (bpp<16) { if (!nb_colors) nb_colors = 1<& load_png(const char *const filename, unsigned int *const bits_per_pixel=0) { - return _load_png(0,filename,bits_per_pixel); + CImg& load_png(const char *const filename, unsigned int *const bits_per_value=0) { + return _load_png(0,filename,bits_per_value); } //! Load image from a PNG file \newinstance. - static CImg get_load_png(const char *const filename, unsigned int *const bits_per_pixel=0) { - return CImg().load_png(filename,bits_per_pixel); + static CImg get_load_png(const char *const filename, unsigned int *const bits_per_value=0) { + return CImg().load_png(filename,bits_per_value); } //! Load image from a PNG file \overloading. - CImg& load_png(std::FILE *const file, unsigned int *const bits_per_pixel=0) { - return _load_png(file,0,bits_per_pixel); + CImg& load_png(std::FILE *const file, unsigned int *const bits_per_value=0) { + return _load_png(file,0,bits_per_value); } //! Load image from a PNG file \newinstance. - static CImg get_load_png(std::FILE *const file, unsigned int *const bits_per_pixel=0) { - return CImg().load_png(file,bits_per_pixel); + static CImg get_load_png(std::FILE *const file, unsigned int *const bits_per_value=0) { + return CImg().load_png(file,bits_per_value); } // (Note: Most of this function has been written by Eric Fausett) - CImg& _load_png(std::FILE *const file, const char *const filename, unsigned int *const bits_per_pixel) { + CImg& _load_png(std::FILE *const file, const char *const filename, unsigned int *const bits_per_value) { if (!file && !filename) throw CImgArgumentException(_cimg_instance "load_png(): Specified filename is (null).", cimg_instance); #ifndef cimg_use_png - cimg::unused(bits_per_pixel); + cimg::unused(bits_per_value); if (file) throw CImgIOException(_cimg_instance "load_png(): Unable to load data from '(FILE*)' unless libpng is enabled.", @@ -52190,7 +54307,7 @@ namespace cimg_library_suffixed { const char *nfilename = filename; std::FILE *nfile = file?file:cimg::fopen(nfilename,"rb"); #endif - unsigned char pngCheck[8] = { 0 }; + unsigned char pngCheck[8] = {}; cimg::fread(pngCheck,8,(std::FILE*)nfile); if (png_sig_cmp(pngCheck,0,8)) { if (!file) cimg::fclose(nfile); @@ -52248,7 +54365,8 @@ namespace cimg_library_suffixed { int bit_depth, color_type, interlace_type; bool is_gray = false; png_get_IHDR(png_ptr,info_ptr,&W,&H,&bit_depth,&color_type,&interlace_type,(int*)0,(int*)0); - if (bits_per_pixel) *bits_per_pixel = (unsigned int)bit_depth; + png_set_interlace_handling(png_ptr); + if (bits_per_value) *bits_per_value = (unsigned int)bit_depth; // Transforms to unify image data if (color_type==PNG_COLOR_TYPE_PALETTE) { @@ -52768,6 +54886,7 @@ namespace cimg_library_suffixed { \param first_frame First frame to read (for multi-pages tiff). \param last_frame Last frame to read (for multi-pages tiff). \param step_frame Step value of frame reading. + \param[out] bits_per_value Number of bits used to store a scalar value in the image file. \param[out] voxel_size Voxel size, as stored in the filename. \param[out] description Description, as stored in the filename. \note @@ -52776,14 +54895,13 @@ namespace cimg_library_suffixed { - When libtiff is enabled, 2D and 3D (multipage) several channel per pixel are supported for char,uchar,short,ushort,float and \c double pixel types. - - If \c cimg_use_tif is not defined at compile time the + - If \c cimg_use_tiff is not defined at compile time the function uses CImg& load_other(const char*). **/ CImg& load_tiff(const char *const filename, const unsigned int first_frame=0, const unsigned int last_frame=~0U, - const unsigned int step_frame=1, - float *const voxel_size=0, - CImg *const description=0) { + const unsigned int step_frame=1, unsigned int *const bits_per_value=0, + float *const voxel_size=0, CImg *const description=0) { if (!filename) throw CImgArgumentException(_cimg_instance "load_tiff(): Specified filename is (null).", @@ -52795,7 +54913,7 @@ namespace cimg_library_suffixed { unsigned int nlast_frame = first_frame1) throw CImgArgumentException(_cimg_instance "load_tiff(): Unable to read sub-images from file '%s' unless libtiff is enabled.", @@ -52822,7 +54940,7 @@ namespace cimg_library_suffixed { TIFFSetDirectory(tif,0); CImg frame; for (unsigned int l = nfirst_frame; l<=nlast_frame; l+=nstep_frame) { - frame._load_tiff(tif,l,voxel_size,description); + frame._load_tiff(tif,l,bits_per_value,voxel_size,description); if (l==nfirst_frame) assign(frame._width,frame._height,1 + (nlast_frame - nfirst_frame)/nstep_frame,frame._spectrum); if (frame._width>_width || frame._height>_height || frame._spectrum>_spectrum) @@ -52843,17 +54961,17 @@ namespace cimg_library_suffixed { //! Load image from a TIFF file \newinstance. static CImg get_load_tiff(const char *const filename, const unsigned int first_frame=0, const unsigned int last_frame=~0U, - const unsigned int step_frame=1, - float *const voxel_size=0, - CImg *const description=0) { - return CImg().load_tiff(filename,first_frame,last_frame,step_frame,voxel_size,description); + const unsigned int step_frame=1, unsigned int *const bits_per_value=0, + float *const voxel_size=0, CImg *const description=0) { + return CImg().load_tiff(filename,first_frame,last_frame,step_frame,bits_per_value,voxel_size,description); } // (Original contribution by Jerome Boulanger). #ifdef cimg_use_tiff template - void _load_tiff_tiled_contig(TIFF *const tif, const uint16 samplesperpixel, - const uint32 nx, const uint32 ny, const uint32 tw, const uint32 th) { + void _load_tiff_tiled_contig(TIFF *const tif, const cimg_uint16 samplesperpixel, + const cimg_uint32 nx, const cimg_uint32 ny, + const cimg_uint32 tw, const cimg_uint32 th) { t *const buf = (t*)_TIFFmalloc(TIFFTileSize(tif)); if (buf) { for (unsigned int row = 0; row - void _load_tiff_tiled_separate(TIFF *const tif, const uint16 samplesperpixel, - const uint32 nx, const uint32 ny, const uint32 tw, const uint32 th) { + void _load_tiff_tiled_separate(TIFF *const tif, const cimg_uint16 samplesperpixel, + const cimg_uint32 nx, const cimg_uint32 ny, + const cimg_uint32 tw, const cimg_uint32 th) { t *const buf = (t*)_TIFFmalloc(TIFFTileSize(tif)); if (buf) { for (unsigned int vv = 0; vv - void _load_tiff_contig(TIFF *const tif, const uint16 samplesperpixel, const uint32 nx, const uint32 ny) { + void _load_tiff_contig(TIFF *const tif, const cimg_uint16 samplesperpixel, + const cimg_uint32 nx, const cimg_uint32 ny) { t *const buf = (t*)_TIFFmalloc(TIFFStripSize(tif)); if (buf) { - uint32 row, rowsperstrip = (uint32)-1; + cimg_uint32 row, rowsperstrip = (cimg_uint32)-1; TIFFGetField(tif,TIFFTAG_ROWSPERSTRIP,&rowsperstrip); for (row = 0; rowny?ny - row:rowsperstrip); + cimg_uint32 nrow = (row + rowsperstrip>ny?ny - row:rowsperstrip); tstrip_t strip = TIFFComputeStrip(tif, row, 0); if ((TIFFReadEncodedStrip(tif,strip,buf,-1))<0) { _TIFFfree(buf); TIFFClose(tif); @@ -52925,14 +55045,15 @@ namespace cimg_library_suffixed { } template - void _load_tiff_separate(TIFF *const tif, const uint16 samplesperpixel, const uint32 nx, const uint32 ny) { + void _load_tiff_separate(TIFF *const tif, const cimg_uint16 samplesperpixel, + const cimg_uint32 nx, const cimg_uint32 ny) { t *buf = (t*)_TIFFmalloc(TIFFStripSize(tif)); if (buf) { - uint32 row, rowsperstrip = (uint32)-1; + cimg_uint32 row, rowsperstrip = (cimg_uint32)-1; TIFFGetField(tif,TIFFTAG_ROWSPERSTRIP,&rowsperstrip); for (unsigned int vv = 0; vvny?ny - row:rowsperstrip); + cimg_uint32 nrow = (row + rowsperstrip>ny?ny - row:rowsperstrip); tstrip_t strip = TIFFComputeStrip(tif, row, vv); if ((TIFFReadEncodedStrip(tif,strip,buf,-1))<0) { _TIFFfree(buf); TIFFClose(tif); @@ -52950,12 +55071,12 @@ namespace cimg_library_suffixed { } } - CImg& _load_tiff(TIFF *const tif, const unsigned int directory, + CImg& _load_tiff(TIFF *const tif, const unsigned int directory, unsigned int *const bits_per_value, float *const voxel_size, CImg *const description) { if (!TIFFSetDirectory(tif,directory)) return assign(); - uint16 samplesperpixel = 1, bitspersample = 8, photo = 0; - uint16 sampleformat = 1; - uint32 nx = 1, ny = 1; + cimg_uint16 samplesperpixel = 1, bitspersample = 8, photo = 0; + cimg_uint16 sampleformat = 1; + cimg_uint32 nx = 1, ny = 1; const char *const filename = TIFFFileName(tif); const bool is_spp = (bool)TIFFGetField(tif,TIFFTAG_SAMPLESPERPIXEL,&samplesperpixel); TIFFGetField(tif,TIFFTAG_IMAGEWIDTH,&nx); @@ -52963,6 +55084,7 @@ namespace cimg_library_suffixed { TIFFGetField(tif, TIFFTAG_SAMPLEFORMAT, &sampleformat); TIFFGetFieldDefaulted(tif,TIFFTAG_BITSPERSAMPLE,&bitspersample); TIFFGetField(tif,TIFFTAG_PHOTOMETRIC,&photo); + if (bits_per_value) *bits_per_value = (unsigned int)bitspersample; if (voxel_size) { const char *s_description = 0; float vx = 0, vy = 0, vz = 0; @@ -52994,13 +55116,13 @@ namespace cimg_library_suffixed { (samplesperpixel==1 || samplesperpixel==3 || samplesperpixel==4)) || (bitspersample==1 && samplesperpixel==1)) { // Special case for unsigned color images. - uint32 *const raster = (uint32*)_TIFFmalloc(nx*ny*sizeof(uint32)); + cimg_uint32 *const raster = (cimg_uint32*)_TIFFmalloc(nx*ny*sizeof(cimg_uint32)); if (!raster) { _TIFFfree(raster); TIFFClose(tif); throw CImgException(_cimg_instance "load_tiff(): Failed to allocate memory (%s) for file '%s'.", cimg_instance, - cimg::strbuffersize(nx*ny*sizeof(uint32)),filename); + cimg::strbuffersize(nx*ny*sizeof(cimg_uint32)),filename); } TIFFReadRGBAImage(tif,nx,ny,raster,0); switch (spectrum) { @@ -53010,9 +55132,9 @@ namespace cimg_library_suffixed { break; case 3 : cimg_forXY(*this,x,y) { - (*this)(x,y,0) = (T)(float)TIFFGetR(raster[nx*(ny - 1 -y) + x]); - (*this)(x,y,1) = (T)(float)TIFFGetG(raster[nx*(ny - 1 -y) + x]); - (*this)(x,y,2) = (T)(float)TIFFGetB(raster[nx*(ny - 1 -y) + x]); + (*this)(x,y,0) = (T)(float)TIFFGetR(raster[nx*(ny - 1 - y) + x]); + (*this)(x,y,1) = (T)(float)TIFFGetG(raster[nx*(ny - 1 - y) + x]); + (*this)(x,y,2) = (T)(float)TIFFGetB(raster[nx*(ny - 1 - y) + x]); } break; case 4 : @@ -53026,10 +55148,10 @@ namespace cimg_library_suffixed { } _TIFFfree(raster); } else { // Other cases - uint16 config; + cimg_uint16 config; TIFFGetField(tif,TIFFTAG_PLANARCONFIG,&config); if (TIFFIsTiled(tif)) { - uint32 tw = 1, th = 1; + cimg_uint32 tw = 1, th = 1; TIFFGetField(tif,TIFFTAG_TILEWIDTH,&tw); TIFFGetField(tif,TIFFTAG_TILELENGTH,&th); if (config==PLANARCONFIG_CONTIG) switch (bitspersample) { @@ -53201,13 +55323,14 @@ namespace cimg_library_suffixed { if (!file) { CImg body(1024); const char *const ext = cimg::split_filename(filename,body); + const unsigned int len = (unsigned int)std::strlen(body); if (!cimg::strcasecmp(ext,"hdr")) { // File is an Analyze header file nfile_header = cimg::fopen(filename,"rb"); - cimg_sprintf(body._data + std::strlen(body),".img"); + cimg_snprintf(body._data + len,body._width - len,".img"); nfile = cimg::fopen(body,"rb"); } else if (!cimg::strcasecmp(ext,"img")) { // File is an Analyze data file nfile = cimg::fopen(filename,"rb"); - cimg_sprintf(body._data + std::strlen(body),".hdr"); + cimg_snprintf(body._data + len,body._width - len,".hdr"); nfile_header = cimg::fopen(body,"rb"); } else nfile_header = nfile = cimg::fopen(filename,"rb"); // File is a Niftii file } else nfile_header = nfile = file; // File is a Niftii file @@ -53464,12 +55587,12 @@ namespace cimg_library_suffixed { case 0 : break; case 2 : out[5] = cimg::strncasecmp(tmp1,"unsigned",8)?1:0; - std::strncpy(tmp1,tmp2,tmp1._width - 1); // fallthrough + std::strncpy(tmp1,tmp2,tmp1._width - 1); // Fallthrough case 1 : if (!cimg::strncasecmp(tmp1,"int",3) || !cimg::strncasecmp(tmp1,"fixed",5)) out[4] = 0; if (!cimg::strncasecmp(tmp1,"float",5) || !cimg::strncasecmp(tmp1,"double",6)) out[4] = 1; if (!cimg::strncasecmp(tmp1,"packed",6)) out[4] = 2; - if (out[4]>=0) break; // fallthrough + if (out[4]>=0) break; // Fallthrough default : throw CImgIOException("CImg<%s>::load_inr(): Invalid pixel type '%s' defined in header.", pixel_type(), @@ -53612,6 +55735,13 @@ namespace cimg_library_suffixed { #define __cimg_load_pandore_case(nbdim,nwidth,nheight,ndepth,ndim,stype) \ cimg::fread(dims,nbdim,nfile); \ if (endian) cimg::invert_endianness(dims,nbdim); \ + if ((ulongT)nwidth*nheight*ndepth*ndim>fsiz) \ + throw CImgIOException(_cimg_instance \ + "load_pandore(): File size %lu for filename '%s' does not match "\ + "encoded image dimensions (%d,%d,%d,%d).",\ + cimg_instance,\ + (long)fsiz,filename?filename:"(FILE*)",\ + (int)nwidth,(int)nheight,(int)ndepth,(int)ndim); \ assign(nwidth,nheight,ndepth,ndim); \ const size_t siz = size(); \ stype *buffer = new stype[siz]; \ @@ -53635,6 +55765,7 @@ namespace cimg_library_suffixed { "load_pandore(): Specified filename is (null).", cimg_instance); + const ulongT fsiz = file?(ulongT)cimg_max_buf_size:(ulongT)cimg::fsize(filename); std::FILE *const nfile = file?file:cimg::fopen(filename,"rb"); CImg header(32); cimg::fread(header._data,12,nfile); @@ -53645,8 +55776,8 @@ namespace cimg_library_suffixed { cimg_instance, filename?filename:"(FILE*)"); } - unsigned int imageid, dims[8] = { 0 }; - int ptbuf[4] = { 0 }; + unsigned int imageid, dims[8] = {}; + int ptbuf[4] = {}; cimg::fread(&imageid,1,nfile); const bool endian = imageid>255; if (endian) cimg::invert_endianness(imageid); @@ -53898,13 +56029,13 @@ namespace cimg_library_suffixed { "load_raw(): Cannot determine size of input file '%s'.", cimg_instance,filename?filename:"(FILE*)"); cimg::fseek(nfile,0,SEEK_END); - siz = cimg::ftell(nfile); + siz = (ulongT)cimg::ftell(nfile); if (!is_bool) { siz/=sizeof(T); _size_y = (unsigned int)siz; } else _size_y = (unsigned int)(siz*8); _size_x = _size_z = _size_c = 1; cimg::fseek(nfile,fpos,SEEK_SET); } - cimg::fseek(nfile,offset,SEEK_SET); + cimg::fseek(nfile,(longT)offset,SEEK_SET); assign(_size_x,_size_y,_size_z,_size_c,0); if (is_bool) { // Boolean data (bitwise) @@ -54339,13 +56470,26 @@ namespace cimg_library_suffixed { const CImg s_filename = CImg::string(filename)._system_strescape(); #if cimg_OS==1 if (!cimg::system("which gm")) { - cimg_snprintf(command,command._width,"%s convert \"%s\" pnm:-", - cimg::graphicsmagick_path(),s_filename.data()); + cimg_snprintf(command,command._width,"%s convert \"%s\" %s:-", + cimg::graphicsmagick_path(), + s_filename.data(), +#ifdef cimg_use_png + "png" +#else + "pnm" +#endif + ); file = popen(command,"r"); if (file) { const unsigned int omode = cimg::exception_mode(); cimg::exception_mode(0); - try { load_pnm(file); } catch (...) { + try { +#ifdef cimg_use_png + load_png(file); +#else + load_pnm(file); +#endif + } catch (...) { pclose(file); cimg::exception_mode(omode); throw CImgIOException(_cimg_instance @@ -54360,12 +56504,21 @@ namespace cimg_library_suffixed { } #endif do { - cimg_snprintf(filename_tmp,filename_tmp._width,"%s%c%s.pnm", - cimg::temporary_path(),cimg_file_separator,cimg::filenamerand()); + cimg_snprintf(filename_tmp,filename_tmp._width,"%s%c%s.%s", + cimg::temporary_path(), + cimg_file_separator, + cimg::filenamerand(), +#ifdef cimg_use_png + "png" +#else + "pnm" +#endif + ); if ((file=cimg::std_fopen(filename_tmp,"rb"))!=0) cimg::fclose(file); } while (file); cimg_snprintf(command,command._width,"\"%s\" convert \"%s\" \"%s\"", - cimg::graphicsmagick_path(),s_filename.data(), + cimg::graphicsmagick_path(), + s_filename.data(), CImg::string(filename_tmp)._system_strescape().data()); cimg::system(command,cimg::graphicsmagick_path()); if (!(file=cimg::std_fopen(filename_tmp,"rb"))) { @@ -54376,7 +56529,11 @@ namespace cimg_library_suffixed { filename); } else cimg::fclose(file); +#ifdef cimg_use_png + load_png(filename_tmp); +#else load_pnm(filename_tmp); +#endif std::remove(filename_tmp); return *this; } @@ -54454,15 +56611,27 @@ namespace cimg_library_suffixed { const CImg s_filename = CImg::string(filename)._system_strescape(); #if cimg_OS==1 if (!cimg::system("which convert")) { - cimg_snprintf(command,command._width,"%s%s \"%s\" pnm:-", + cimg_snprintf(command,command._width,"%s%s \"%s\" %s:-", cimg::imagemagick_path(), !cimg::strcasecmp(cimg::split_filename(filename),"pdf")?" -density 400x400":"", - s_filename.data()); + s_filename.data(), +#ifdef cimg_use_png + "png" +#else + "pnm" +#endif + ); file = popen(command,"r"); if (file) { const unsigned int omode = cimg::exception_mode(); cimg::exception_mode(0); - try { load_pnm(file); } catch (...) { + try { +#ifdef cimg_use_png + load_png(file); +#else + load_pnm(file); +#endif + } catch (...) { pclose(file); cimg::exception_mode(omode); throw CImgIOException(_cimg_instance @@ -54477,14 +56646,23 @@ namespace cimg_library_suffixed { } #endif do { - cimg_snprintf(filename_tmp,filename_tmp._width,"%s%c%s.pnm", - cimg::temporary_path(),cimg_file_separator,cimg::filenamerand()); + cimg_snprintf(filename_tmp,filename_tmp._width,"%s%c%s.%s", + cimg::temporary_path(), + cimg_file_separator, + cimg::filenamerand(), +#ifdef cimg_use_png + "png" +#else + "pnm" +#endif + ); if ((file=cimg::std_fopen(filename_tmp,"rb"))!=0) cimg::fclose(file); } while (file); cimg_snprintf(command,command._width,"\"%s\"%s \"%s\" \"%s\"", cimg::imagemagick_path(), !cimg::strcasecmp(cimg::split_filename(filename),"pdf")?" -density 400x400":"", - s_filename.data(),CImg::string(filename_tmp)._system_strescape().data()); + s_filename.data(), + CImg::string(filename_tmp)._system_strescape().data()); cimg::system(command,cimg::imagemagick_path()); if (!(file=cimg::std_fopen(filename_tmp,"rb"))) { cimg::fclose(cimg::fopen(filename,"r")); @@ -54495,7 +56673,11 @@ namespace cimg_library_suffixed { filename); } else cimg::fclose(file); +#ifdef cimg_use_png + load_png(filename_tmp); +#else load_pnm(filename_tmp); +#endif std::remove(filename_tmp); return *this; } @@ -54526,7 +56708,7 @@ namespace cimg_library_suffixed { cimg::medcon_path(), CImg::string(filename_tmp)._system_strescape().data(), CImg::string(filename)._system_strescape().data()); - cimg::system(command, cimg::medcon_path()); + cimg::system(command,cimg::medcon_path()); cimg::split_filename(filename_tmp,body); cimg_snprintf(command,command._width,"%s.hdr",body._data); @@ -54741,7 +56923,7 @@ namespace cimg_library_suffixed { "(no more than 100 cameras can be managed simultaneously).", cimg_instance, camera_index); - static cv::VideoCapture *captures[64] = { 0 }; + static cv::VideoCapture *captures[64] = {}; static unsigned int captures_w[64], captures_h[64]; if (release_camera) { cimg::mutex(9); @@ -54779,7 +56961,14 @@ namespace cimg_library_suffixed { for (unsigned int i = 0; igrab(); cv::Mat cvimg; captures[camera_index]->read(cvimg); - if (cvimg.empty()) assign(); else _cvmat2cimg(cvimg).move_to(*this); + if (cvimg.empty()) { + cimg::mutex(9,0); + load_camera(camera_index,0,0,0,true); // Release camera + throw CImgIOException(_cimg_instance + "load_camera(): Failed to retrieve a %ux%u frame from camera #%u.", + cimg_instance, + capture_width,capture_height,camera_index); + } else _cvmat2cimg(cvimg).move_to(*this); cimg::mutex(9,0); return *this; #else @@ -54941,7 +57130,7 @@ namespace cimg_library_suffixed { const CImg& _display(CImgDisplay &disp, const char *const title, const bool display_info, unsigned int *const XYZ, const bool exit_on_anykey, const bool exit_on_singleclick) const { - unsigned int oldw = 0, oldh = 0, _XYZ[3] = { 0 }, key = 0; + unsigned int oldw = 0, oldh = 0, _XYZ[3] = {}, key = 0; int x0 = 0, y0 = 0, z0 = 0, x1 = width() - 1, y1 = height() - 1, z1 = depth() - 1, old_mouse_x = -1, old_mouse_y = -1; @@ -56200,7 +58389,7 @@ namespace cimg_library_suffixed { std::FILE *const nfile = file?file:cimg::fopen(filename,"wb"); CImg header(54,1,1,1,0); - unsigned char align_buf[4] = { 0 }; + unsigned char align_buf[4] = {}; const unsigned int align = (4 - (3*_width)%4)%4, buf_size = (3*_width + align)*height(), @@ -56418,7 +58607,7 @@ namespace cimg_library_suffixed { cimg::warn(_cimg_instance "save_magick(): Instance has pixel values in [%g,%g], probable type overflow in file '%s'.", cimg_instance, - filename,stmin,stmax); + stmin,stmax,filename); Magick::Image image(Magick::Geometry(_width,_height),"black"); image.type(Magick::TrueColorType); @@ -56518,7 +58707,7 @@ namespace cimg_library_suffixed { cimg::warn(_cimg_instance "save_png(): Instance has pixel values in [%g,%g], probable type overflow in file '%s'.", cimg_instance, - filename,stmin,stmax); + stmin,stmax,filename); // Setup PNG structures for write png_voidp user_error_ptr = 0; @@ -57112,8 +59301,8 @@ namespace cimg_library_suffixed { /** \param filename Filename, as a C-string. \param compression_type Type of data compression. Can be { 0=None | 1=LZW | 2=JPEG }. - \param voxel_size Voxel size, to be stored in the filename. - \param description Description, to be stored in the filename. + \param[out] voxel_size Voxel size, to be stored in the filename. + \param[out] description Description, to be stored in the filename. \param use_bigtiff Allow to save big tiff files (>4Gb). \note - libtiff support is enabled by defining the precompilation @@ -57121,10 +59310,11 @@ namespace cimg_library_suffixed { - When libtiff is enabled, 2D and 3D (multipage) several channel per pixel are supported for char,uchar,short,ushort,float and \c double pixel types. - - If \c cimg_use_tif is not defined at compile time the + - If \c cimg_use_tiff is not defined at compile time the function uses CImg&save_other(const char*). **/ const CImg& save_tiff(const char *const filename, const unsigned int compression_type=0, + const float *const voxel_size=0, const char *const description=0, const bool use_bigtiff=true) const { if (!filename) @@ -57153,8 +59343,8 @@ namespace cimg_library_suffixed { #ifdef cimg_use_tiff -#define _cimg_save_tiff(types,typed,compression_type) if (!std::strcmp(types,pixel_type())) { \ - const typed foo = (typed)0; return _save_tiff(tif,directory,z,foo,compression_type,voxel_size,description); } +#define _cimg_save_tiff(types,typed) if (!std::strcmp(types,pixel_type())) { \ + const typed foo = (typed)0; return _save_tiff(tif,directory,z,foo,compression_type,voxel_size,description); } // [internal] Save a plane into a tiff file template @@ -57163,8 +59353,8 @@ namespace cimg_library_suffixed { const char *const description) const { if (is_empty() || !tif || pixel_t) return *this; const char *const filename = TIFFFileName(tif); - uint32 rowsperstrip = (uint32)-1; - uint16 spp = _spectrum, bpp = sizeof(t)*8, photometric; + cimg_uint32 rowsperstrip = (cimg_uint32)-1; + cimg_uint16 spp = _spectrum, bpp = sizeof(t)*8, photometric; if (spp==3 || spp==4) photometric = PHOTOMETRIC_RGB; else photometric = PHOTOMETRIC_MINISBLACK; TIFFSetDirectory(tif,directory); @@ -57196,12 +59386,12 @@ namespace cimg_library_suffixed { rowsperstrip = TIFFDefaultStripSize(tif,rowsperstrip); TIFFSetField(tif,TIFFTAG_ROWSPERSTRIP,rowsperstrip); TIFFSetField(tif,TIFFTAG_FILLORDER,FILLORDER_MSB2LSB); - TIFFSetField(tif,TIFFTAG_SOFTWARE,"CImg"); + TIFFSetField(tif,TIFFTAG_SOFTWARE,cimg_appname); t *const buf = (t*)_TIFFmalloc(TIFFStripSize(tif)); if (buf) { for (unsigned int row = 0; row<_height; row+=rowsperstrip) { - uint32 nrow = (row + rowsperstrip>_height?_height - row:rowsperstrip); + cimg_uint32 nrow = (row + rowsperstrip>_height?_height - row:rowsperstrip); tstrip_t strip = TIFFComputeStrip(tif,row,0); tsize_t i = 0; for (unsigned int rr = 0; rr& _save_tiff(TIFF *tif, const unsigned int directory, const unsigned int z, const unsigned int compression_type, const float *const voxel_size, const char *const description) const { - _cimg_save_tiff("bool",unsigned char,compression_type); - _cimg_save_tiff("unsigned char",unsigned char,compression_type); - _cimg_save_tiff("char",char,compression_type); - _cimg_save_tiff("unsigned short",unsigned short,compression_type); - _cimg_save_tiff("short",short,compression_type); - _cimg_save_tiff("unsigned int",unsigned int,compression_type); - _cimg_save_tiff("int",int,compression_type); - _cimg_save_tiff("unsigned int64",unsigned int,compression_type); - _cimg_save_tiff("int64",int,compression_type); - _cimg_save_tiff("float",float,compression_type); - _cimg_save_tiff("double",float,compression_type); + _cimg_save_tiff("uint8",cimg_uint8); + _cimg_save_tiff("int8",cimg_int8); + _cimg_save_tiff("uint16",cimg_uint16); + _cimg_save_tiff("int16",cimg_int16); + _cimg_save_tiff("uint32",cimg_uint32); + _cimg_save_tiff("int32",cimg_int32); + _cimg_save_tiff("uint64",cimg_uint32); // 'int64' as 'int32' + _cimg_save_tiff("int64",cimg_int32); + _cimg_save_tiff("float32",cimg_float32); + _cimg_save_tiff("float64",cimg_float32); // 'float64' as 'float32' const char *const filename = TIFFFileName(tif); throw CImgInstanceException(_cimg_instance "save_tiff(): Unsupported pixel type '%s' for file '%s'.", @@ -57307,12 +59496,12 @@ namespace cimg_library_suffixed { if (!cimg::strncasecmp(ext,"hdr",3)) { std::strcpy(hname,filename); std::strncpy(iname,filename,iname._width - 1); - cimg_sprintf(iname._data + std::strlen(iname) - 3,"img"); + cimg_snprintf(iname._data + std::strlen(iname) - 3,4,"img"); } if (!cimg::strncasecmp(ext,"img",3)) { std::strcpy(hname,filename); std::strncpy(iname,filename,iname._width - 1); - cimg_sprintf(hname._data + std::strlen(iname) - 3,"hdr"); + cimg_snprintf(hname._data + std::strlen(iname) - 3,4,"hdr"); } if (!cimg::strncasecmp(ext,"nii",3)) { std::strncpy(hname,filename,hname._width - 1); *iname = 0; @@ -57330,17 +59519,17 @@ namespace cimg_library_suffixed { ((short*)&(header[40]))[2] = (short)_height; ((short*)&(header[40]))[3] = (short)_depth; ((short*)&(header[40]))[4] = (short)_spectrum; - if (!cimg::strcasecmp(pixel_type(),"bool")) datatype = 2; - if (!cimg::strcasecmp(pixel_type(),"unsigned char")) datatype = 2; - if (!cimg::strcasecmp(pixel_type(),"char")) datatype = 2; - if (!cimg::strcasecmp(pixel_type(),"unsigned short")) datatype = 4; - if (!cimg::strcasecmp(pixel_type(),"short")) datatype = 4; - if (!cimg::strcasecmp(pixel_type(),"unsigned int")) datatype = 8; - if (!cimg::strcasecmp(pixel_type(),"int")) datatype = 8; - if (!cimg::strcasecmp(pixel_type(),"unsigned int64")) datatype = 8; - if (!cimg::strcasecmp(pixel_type(),"int64")) datatype = 8; - if (!cimg::strcasecmp(pixel_type(),"float")) datatype = 16; - if (!cimg::strcasecmp(pixel_type(),"double")) datatype = 64; + if (!cimg::strcasecmp(pixel_type(),"bool") || + !cimg::strcasecmp(pixel_type(),"uint8") || + !cimg::strcasecmp(pixel_type(),"int8")) datatype = 2; + if (!cimg::strcasecmp(pixel_type(),"uint16") || + !cimg::strcasecmp(pixel_type(),"int16")) datatype = 4; + if (!cimg::strcasecmp(pixel_type(),"uint32") || + !cimg::strcasecmp(pixel_type(),"int32")) datatype = 8; + if (!cimg::strcasecmp(pixel_type(),"uint64") || + !cimg::strcasecmp(pixel_type(),"int64")) datatype = 8; + if (!cimg::strcasecmp(pixel_type(),"float32")) datatype = 16; + if (!cimg::strcasecmp(pixel_type(),"float64")) datatype = 64; if (datatype<0) throw CImgIOException(_cimg_instance "save_analyze(): Unsupported pixel type '%s' for file '%s'.", @@ -57458,28 +59647,28 @@ namespace cimg_library_suffixed { int inrpixsize = -1; const char *inrtype = "unsigned fixed\nPIXSIZE=8 bits\nSCALE=2**0"; - if (!cimg::strcasecmp(pixel_type(),"unsigned char")) { + if (!cimg::strcasecmp(pixel_type(),"uint8")) { inrtype = "unsigned fixed\nPIXSIZE=8 bits\nSCALE=2**0"; inrpixsize = 1; } - if (!cimg::strcasecmp(pixel_type(),"char")) { + if (!cimg::strcasecmp(pixel_type(),"int8")) { inrtype = "fixed\nPIXSIZE=8 bits\nSCALE=2**0"; inrpixsize = 1; } - if (!cimg::strcasecmp(pixel_type(),"unsigned short")) { + if (!cimg::strcasecmp(pixel_type(),"uint16")) { inrtype = "unsigned fixed\nPIXSIZE=16 bits\nSCALE=2**0";inrpixsize = 2; } - if (!cimg::strcasecmp(pixel_type(),"short")) { + if (!cimg::strcasecmp(pixel_type(),"int16")) { inrtype = "fixed\nPIXSIZE=16 bits\nSCALE=2**0"; inrpixsize = 2; } - if (!cimg::strcasecmp(pixel_type(),"unsigned int")) { + if (!cimg::strcasecmp(pixel_type(),"uint32")) { inrtype = "unsigned fixed\nPIXSIZE=32 bits\nSCALE=2**0";inrpixsize = 4; } - if (!cimg::strcasecmp(pixel_type(),"int")) { + if (!cimg::strcasecmp(pixel_type(),"int32")) { inrtype = "fixed\nPIXSIZE=32 bits\nSCALE=2**0"; inrpixsize = 4; } - if (!cimg::strcasecmp(pixel_type(),"float")) { + if (!cimg::strcasecmp(pixel_type(),"float32")) { inrtype = "float\nPIXSIZE=32 bits"; inrpixsize = 4; } - if (!cimg::strcasecmp(pixel_type(),"double")) { + if (!cimg::strcasecmp(pixel_type(),"float64")) { inrtype = "float\nPIXSIZE=64 bits"; inrpixsize = 8; } if (inrpixsize<=0) @@ -57492,9 +59681,11 @@ namespace cimg_library_suffixed { CImg header(257); int err = cimg_snprintf(header,header._width,"#INRIMAGE-4#{\nXDIM=%u\nYDIM=%u\nZDIM=%u\nVDIM=%u\n", _width,_height,_depth,_spectrum); - if (voxel_size) err+=cimg_sprintf(header._data + err,"VX=%g\nVY=%g\nVZ=%g\n", - voxel_size[0],voxel_size[1],voxel_size[2]); - err+=cimg_sprintf(header._data + err,"TYPE=%s\nCPU=%s\n",inrtype,cimg::endianness()?"sun":"decm"); + if (voxel_size) + err+=cimg_snprintf(header._data + err,128,"VX=%g\nVY=%g\nVZ=%g\n", + voxel_size[0],voxel_size[1],voxel_size[2]); + err+=cimg_snprintf(header._data + err,128,"TYPE=%s\nCPU=%s\n", + inrtype,cimg::endianness()?"sun":"decm"); std::memset(header._data + err,'\n',252 - err); std::memcpy(header._data + 252,"##}\n",4); cimg::fwrite(header._data,256,nfile); @@ -57685,95 +59876,95 @@ namespace cimg_library_suffixed { unsigned char header[36] = { 'P','A','N','D','O','R','E','0','4',0,0,0, 0,0,0,0,'C','I','m','g',0,0,0,0,0, 'N','o',' ','d','a','t','e',0,0,0,0 }; - unsigned int nbdims, dims[5] = { 0 }; + unsigned int nbdims, dims[5] = {}; bool saved = false; - _cimg_save_pandore_case(1,1,1,"unsigned char",2); - _cimg_save_pandore_case(1,1,1,"char",3); - _cimg_save_pandore_case(1,1,1,"unsigned short",3); - _cimg_save_pandore_case(1,1,1,"short",3); - _cimg_save_pandore_case(1,1,1,"unsigned int",3); - _cimg_save_pandore_case(1,1,1,"int",3); - _cimg_save_pandore_case(1,1,1,"unsigned int64",3); + _cimg_save_pandore_case(1,1,1,"uint8",2); + _cimg_save_pandore_case(1,1,1,"int8",3); + _cimg_save_pandore_case(1,1,1,"uint16",3); + _cimg_save_pandore_case(1,1,1,"int16",3); + _cimg_save_pandore_case(1,1,1,"uint32",3); + _cimg_save_pandore_case(1,1,1,"int32",3); + _cimg_save_pandore_case(1,1,1,"uint64",3); _cimg_save_pandore_case(1,1,1,"int64",3); - _cimg_save_pandore_case(1,1,1,"float",4); - _cimg_save_pandore_case(1,1,1,"double",4); + _cimg_save_pandore_case(1,1,1,"float32",4); + _cimg_save_pandore_case(1,1,1,"float64",4); - _cimg_save_pandore_case(0,1,1,"unsigned char",5); - _cimg_save_pandore_case(0,1,1,"char",6); - _cimg_save_pandore_case(0,1,1,"unsigned short",6); - _cimg_save_pandore_case(0,1,1,"short",6); - _cimg_save_pandore_case(0,1,1,"unsigned int",6); - _cimg_save_pandore_case(0,1,1,"int",6); - _cimg_save_pandore_case(0,1,1,"unsigned int64",6); + _cimg_save_pandore_case(0,1,1,"uint8",5); + _cimg_save_pandore_case(0,1,1,"int8",6); + _cimg_save_pandore_case(0,1,1,"uint16",6); + _cimg_save_pandore_case(0,1,1,"int16",6); + _cimg_save_pandore_case(0,1,1,"uint32",6); + _cimg_save_pandore_case(0,1,1,"int32",6); + _cimg_save_pandore_case(0,1,1,"uint64",6); _cimg_save_pandore_case(0,1,1,"int64",6); - _cimg_save_pandore_case(0,1,1,"float",7); - _cimg_save_pandore_case(0,1,1,"double",7); + _cimg_save_pandore_case(0,1,1,"float32",7); + _cimg_save_pandore_case(0,1,1,"float64",7); - _cimg_save_pandore_case(0,0,1,"unsigned char",8); - _cimg_save_pandore_case(0,0,1,"char",9); - _cimg_save_pandore_case(0,0,1,"unsigned short",9); - _cimg_save_pandore_case(0,0,1,"short",9); - _cimg_save_pandore_case(0,0,1,"unsigned int",9); - _cimg_save_pandore_case(0,0,1,"int",9); - _cimg_save_pandore_case(0,0,1,"unsigned int64",9); + _cimg_save_pandore_case(0,0,1,"uint8",8); + _cimg_save_pandore_case(0,0,1,"int8",9); + _cimg_save_pandore_case(0,0,1,"uint16",9); + _cimg_save_pandore_case(0,0,1,"int16",9); + _cimg_save_pandore_case(0,0,1,"uint32",9); + _cimg_save_pandore_case(0,0,1,"int32",9); + _cimg_save_pandore_case(0,0,1,"uint64",9); _cimg_save_pandore_case(0,0,1,"int64",9); - _cimg_save_pandore_case(0,0,1,"float",10); - _cimg_save_pandore_case(0,0,1,"double",10); + _cimg_save_pandore_case(0,0,1,"float32",10); + _cimg_save_pandore_case(0,0,1,"float64",10); - _cimg_save_pandore_case(0,1,3,"unsigned char",16); - _cimg_save_pandore_case(0,1,3,"char",17); - _cimg_save_pandore_case(0,1,3,"unsigned short",17); - _cimg_save_pandore_case(0,1,3,"short",17); - _cimg_save_pandore_case(0,1,3,"unsigned int",17); - _cimg_save_pandore_case(0,1,3,"int",17); - _cimg_save_pandore_case(0,1,3,"unsigned int64",17); + _cimg_save_pandore_case(0,1,3,"uint8",16); + _cimg_save_pandore_case(0,1,3,"int8",17); + _cimg_save_pandore_case(0,1,3,"uint16",17); + _cimg_save_pandore_case(0,1,3,"int16",17); + _cimg_save_pandore_case(0,1,3,"uint32",17); + _cimg_save_pandore_case(0,1,3,"int32",17); + _cimg_save_pandore_case(0,1,3,"uint64",17); _cimg_save_pandore_case(0,1,3,"int64",17); - _cimg_save_pandore_case(0,1,3,"float",18); - _cimg_save_pandore_case(0,1,3,"double",18); + _cimg_save_pandore_case(0,1,3,"float32",18); + _cimg_save_pandore_case(0,1,3,"float64",18); - _cimg_save_pandore_case(0,0,3,"unsigned char",19); - _cimg_save_pandore_case(0,0,3,"char",20); - _cimg_save_pandore_case(0,0,3,"unsigned short",20); - _cimg_save_pandore_case(0,0,3,"short",20); - _cimg_save_pandore_case(0,0,3,"unsigned int",20); - _cimg_save_pandore_case(0,0,3,"int",20); - _cimg_save_pandore_case(0,0,3,"unsigned int64",20); + _cimg_save_pandore_case(0,0,3,"uint8",19); + _cimg_save_pandore_case(0,0,3,"int8",20); + _cimg_save_pandore_case(0,0,3,"uint16",20); + _cimg_save_pandore_case(0,0,3,"int16",20); + _cimg_save_pandore_case(0,0,3,"uint32",20); + _cimg_save_pandore_case(0,0,3,"int32",20); + _cimg_save_pandore_case(0,0,3,"uint64",20); _cimg_save_pandore_case(0,0,3,"int64",20); - _cimg_save_pandore_case(0,0,3,"float",21); - _cimg_save_pandore_case(0,0,3,"double",21); + _cimg_save_pandore_case(0,0,3,"float32",21); + _cimg_save_pandore_case(0,0,3,"float64",21); - _cimg_save_pandore_case(1,1,0,"unsigned char",22); - _cimg_save_pandore_case(1,1,0,"char",23); - _cimg_save_pandore_case(1,1,0,"unsigned short",23); - _cimg_save_pandore_case(1,1,0,"short",23); - _cimg_save_pandore_case(1,1,0,"unsigned int",23); - _cimg_save_pandore_case(1,1,0,"int",23); - _cimg_save_pandore_case(1,1,0,"unsigned int64",23); + _cimg_save_pandore_case(1,1,0,"uint8",22); + _cimg_save_pandore_case(1,1,0,"int8",23); + _cimg_save_pandore_case(1,1,0,"uint16",23); + _cimg_save_pandore_case(1,1,0,"int16",23); + _cimg_save_pandore_case(1,1,0,"uint32",23); + _cimg_save_pandore_case(1,1,0,"int32",23); + _cimg_save_pandore_case(1,1,0,"uint64",23); _cimg_save_pandore_case(1,1,0,"int64",23); - _cimg_save_pandore_case(1,1,0,"float",25); - _cimg_save_pandore_case(1,1,0,"double",25); + _cimg_save_pandore_case(1,1,0,"float32",25); + _cimg_save_pandore_case(1,1,0,"float64",25); - _cimg_save_pandore_case(0,1,0,"unsigned char",26); - _cimg_save_pandore_case(0,1,0,"char",27); - _cimg_save_pandore_case(0,1,0,"unsigned short",27); - _cimg_save_pandore_case(0,1,0,"short",27); - _cimg_save_pandore_case(0,1,0,"unsigned int",27); - _cimg_save_pandore_case(0,1,0,"int",27); - _cimg_save_pandore_case(0,1,0,"unsigned int64",27); + _cimg_save_pandore_case(0,1,0,"uint8",26); + _cimg_save_pandore_case(0,1,0,"int8",27); + _cimg_save_pandore_case(0,1,0,"uint16",27); + _cimg_save_pandore_case(0,1,0,"int16",27); + _cimg_save_pandore_case(0,1,0,"uint32",27); + _cimg_save_pandore_case(0,1,0,"int32",27); + _cimg_save_pandore_case(0,1,0,"uint64",27); _cimg_save_pandore_case(0,1,0,"int64",27); - _cimg_save_pandore_case(0,1,0,"float",29); - _cimg_save_pandore_case(0,1,0,"double",29); + _cimg_save_pandore_case(0,1,0,"float32",29); + _cimg_save_pandore_case(0,1,0,"float64",29); - _cimg_save_pandore_case(0,0,0,"unsigned char",30); - _cimg_save_pandore_case(0,0,0,"char",31); - _cimg_save_pandore_case(0,0,0,"unsigned short",31); - _cimg_save_pandore_case(0,0,0,"short",31); - _cimg_save_pandore_case(0,0,0,"unsigned int",31); - _cimg_save_pandore_case(0,0,0,"int",31); - _cimg_save_pandore_case(0,0,0,"unsigned int64",31); + _cimg_save_pandore_case(0,0,0,"uint8",30); + _cimg_save_pandore_case(0,0,0,"int8",31); + _cimg_save_pandore_case(0,0,0,"uint16",31); + _cimg_save_pandore_case(0,0,0,"int16",31); + _cimg_save_pandore_case(0,0,0,"uint32",31); + _cimg_save_pandore_case(0,0,0,"int32",31); + _cimg_save_pandore_case(0,0,0,"uint64",31); _cimg_save_pandore_case(0,0,0,"int64",31); - _cimg_save_pandore_case(0,0,0,"float",33); - _cimg_save_pandore_case(0,0,0,"double",33); + _cimg_save_pandore_case(0,0,0,"float32",33); + _cimg_save_pandore_case(0,0,0,"float64",33); if (!file) cimg::fclose(nfile); return *this; @@ -58081,7 +60272,7 @@ namespace cimg_library_suffixed { cimg::gzip_path(), CImg::string(filename_tmp)._system_strescape().data(), CImg::string(filename)._system_strescape().data()); - cimg::system(command, cimg::gzip_path()); + cimg::system(command,cimg::gzip_path()); file = cimg::std_fopen(filename,"rb"); if (!file) throw CImgIOException(_cimg_instance @@ -58139,7 +60330,7 @@ namespace cimg_library_suffixed { cimg::graphicsmagick_path(),quality, CImg::string(filename_tmp)._system_strescape().data(), CImg::string(filename)._system_strescape().data()); - cimg::system(command, cimg::graphicsmagick_path()); + cimg::system(command,cimg::graphicsmagick_path()); file = cimg::std_fopen(filename,"rb"); if (!file) throw CImgIOException(_cimg_instance @@ -58194,7 +60385,7 @@ namespace cimg_library_suffixed { cimg::imagemagick_path(),quality, CImg::string(filename_tmp)._system_strescape().data(), CImg::string(filename)._system_strescape().data()); - cimg::system(command, cimg::imagemagick_path()); + cimg::system(command,cimg::imagemagick_path()); file = cimg::std_fopen(filename,"rb"); if (!file) throw CImgIOException(_cimg_instance @@ -58233,7 +60424,7 @@ namespace cimg_library_suffixed { cimg::medcon_path(), CImg::string(filename)._system_strescape().data(), CImg::string(filename_tmp)._system_strescape().data()); - cimg::system(command, cimg::medcon_path()); + cimg::system(command,cimg::medcon_path()); std::remove(filename_tmp); cimg::split_filename(filename_tmp,body); cimg_snprintf(filename_tmp,filename_tmp._width,"%s.img",body._data); @@ -58308,9 +60499,10 @@ namespace cimg_library_suffixed { /** \param is_compressed tells if zlib compression must be used for serialization (this requires 'cimg_use_zlib' been enabled). + \param header_size Reserve empty bytes as a starting header. **/ - CImg get_serialize(const bool is_compressed=false) const { - return CImgList(*this,true).get_serialize(is_compressed); + CImg get_serialize(const bool is_compressed=false, const unsigned int header_size=0) const { + return CImgList(*this,true).get_serialize(is_compressed,header_size); } // [internal] Return a 40x38 color logo of a 'danger' item. @@ -59245,7 +61437,7 @@ namespace cimg_library_suffixed { Return a \c char* string containing the usual type name of the image pixel values (i.e. a stringified version of the template parameter \c T). \note - - The returned string may contain spaces (as in \c "unsigned char"). + - The returned string does not contain any spaces. - If the pixel type \c T does not correspond to a registered type, the string "unknown" is returned. **/ static const char* pixel_type() { @@ -61038,7 +63230,9 @@ namespace cimg_library_suffixed { is_loaded = true; try { if (!cimg::strcasecmp(f_type,"gif")) load_gif_external(filename); - else if (!cimg::strcasecmp(f_type,"tif")) load_tiff(filename); + else if (!cimg::strcasecmp(f_type,"tif") && + cimg::strcasecmp(ext,"nef") && + cimg::strcasecmp(ext,"dng")) load_tiff(filename); else is_loaded = false; } catch (CImgIOException&) { is_loaded = false; } } @@ -61095,17 +63289,17 @@ namespace cimg_library_suffixed { #ifdef cimg_use_zlib #define _cimgz_load_cimg_case(Tss) { \ Bytef *const cbuf = new Bytef[csiz]; \ - cimg::fread(cbuf,csiz,nfile); \ + cimg::fread(cbuf,(size_t)csiz,nfile); \ if (is_bool) { \ CImg raw(W*H*D*C/8); \ - uLongf destlen = (ulongT)raw.size(); \ - uncompress((Bytef*)raw._data,&destlen,cbuf,csiz); \ + uLongf destlen = (uLongf)raw.size(); \ + uncompress((Bytef*)raw._data,&destlen,cbuf,(uLong)csiz); \ img.assign(W,H,D,C); \ img._uchar2bool(raw,raw.size(),false); \ } else { \ CImg raw(W,H,D,C); \ - uLongf destlen = (ulongT)raw.size()*sizeof(Tss); \ - uncompress((Bytef*)raw._data,&destlen,cbuf,csiz); \ + uLongf destlen = (uLongf)(raw.size()*sizeof(Tss)); \ + uncompress((Bytef*)raw._data,&destlen,cbuf,(uLong)csiz); \ if (endian!=cimg::endianness()) cimg::invert_endianness(raw._data,raw.size()); \ raw.move_to(img); \ } \ @@ -61119,13 +63313,15 @@ namespace cimg_library_suffixed { filename?filename:"(FILE*)"); #endif -#define _cimg_load_cimg_case(Ts,Tss) \ - if (!loaded && !cimg::strcasecmp(Ts,str_pixeltype)) { \ +#define _cimg_load_cimg_case(Ts1,Ts2,Ts3,Tss) \ + if (!loaded && ((Ts1 && !cimg::strcasecmp(Ts1,str_pixeltype)) || \ + (Ts2 && !cimg::strcasecmp(Ts2,str_pixeltype)) || \ + (Ts3 && !cimg::strcasecmp(Ts3,str_pixeltype)))) { \ const bool is_bool = cimg::type::string()==cimg::type::string(); \ for (unsigned int l = 0; l=0 && j<255) tmp[j++] = (char)i; tmp[j] = 0; \ W = H = D = C = 0; csiz = 0; \ - if ((err = cimg_sscanf(tmp,"%u %u %u %u #%lu",&W,&H,&D,&C,&csiz))<4) \ + if ((err = cimg_sscanf(tmp,"%u %u %u %u #" cimg_fuint64,&W,&H,&D,&C,&csiz))<4) \ throw CImgIOException(_cimglist_instance \ "load_cimg(): Invalid specified size (%u,%u,%u,%u) of image %u in file '%s'.", \ cimglist_instance, \ @@ -61141,7 +63337,7 @@ namespace cimg_library_suffixed { for (ulongT to_read = img.size(); to_read; ) { \ raw.assign((unsigned int)std::min(to_read,cimg_iobuffer)); \ cimg::fread(raw._data,raw._width,nfile); \ - CImg(ptrd,std::min((ulongT)8*raw._width,(ulongT)(img.end() - ptrd)),1,1,1,true).\ + CImg(ptrd,std::min(8*raw._width,(unsigned int)(img.end() - ptrd)),1,1,1,true).\ _uchar2bool(raw,raw._width,false); \ to_read-=raw._width; \ } \ @@ -61173,41 +63369,37 @@ namespace cimg_library_suffixed { CImg tmp(256), str_pixeltype(256), str_endian(256); *tmp = *str_pixeltype = *str_endian = 0; unsigned int j, N = 0, W, H, D, C; - unsigned long csiz; + cimg_uint64 csiz; int i, err; do { j = 0; while ((i=std::fgetc(nfile))!='\n' && i>=0 && j<255) tmp[j++] = (char)i; tmp[j] = 0; } while (*tmp=='#' && i>=0); - err = cimg_sscanf(tmp,"%u%*c%255[A-Za-z64_]%*c%255[sA-Za-z_ ]", + err = cimg_sscanf(tmp,"%u%*c%255[A-Za-z123468_]%*c%255[sA-Za-z_ ]", &N,str_pixeltype._data,str_endian._data); if (err<2) { if (!file) cimg::fclose(nfile); throw CImgIOException(_cimglist_instance - "load_cimg(): CImg header not found in file '%s'.", + "load_cimg(): File or CImg header not found in file '%s'.", cimglist_instance, filename?filename:"(FILE*)"); } if (!cimg::strncasecmp("little",str_endian,6)) endian = false; else if (!cimg::strncasecmp("big",str_endian,3)) endian = true; assign(N); - _cimg_load_cimg_case("bool",bool); - _cimg_load_cimg_case("unsigned_char",unsigned char); - _cimg_load_cimg_case("uchar",unsigned char); - _cimg_load_cimg_case("char",char); - _cimg_load_cimg_case("unsigned_short",unsigned short); - _cimg_load_cimg_case("ushort",unsigned short); - _cimg_load_cimg_case("short",short); - _cimg_load_cimg_case("unsigned_int",unsigned int); - _cimg_load_cimg_case("uint",unsigned int); - _cimg_load_cimg_case("int",int); - _cimg_load_cimg_case("unsigned_long",ulongT); - _cimg_load_cimg_case("ulong",ulongT); - _cimg_load_cimg_case("long",longT); - _cimg_load_cimg_case("unsigned_int64",uint64T); - _cimg_load_cimg_case("uint64",uint64T); - _cimg_load_cimg_case("int64",int64T); - _cimg_load_cimg_case("float",float); - _cimg_load_cimg_case("double",double); + _cimg_load_cimg_case("bool",0,0,cimg_uint8); + _cimg_load_cimg_case("uint8","unsigned_char","uchar",cimg_uint8); + _cimg_load_cimg_case("int8",0,0,cimg_int8); + _cimg_load_cimg_case("char",0,0,char); + _cimg_load_cimg_case("uint16","unsigned_short","ushort",cimg_uint16); + _cimg_load_cimg_case("int16","short",0,cimg_int16); + _cimg_load_cimg_case("uint32","unsigned_int","uint",cimg_uint32); + _cimg_load_cimg_case("int32","int",0,cimg_int32); + _cimg_load_cimg_case("unsigned_long","ulong",0,cimg_ulong); + _cimg_load_cimg_case("long",0,0,cimg_long); + _cimg_load_cimg_case("uint64","unsigned_int64",0,cimg_uint64); + _cimg_load_cimg_case("int64",0,0,cimg_int64); + _cimg_load_cimg_case("float32","float",0,cimg_float32); + _cimg_load_cimg_case("float64","double",0,cimg_float64); if (!loaded) { if (!file) cimg::fclose(nfile); @@ -61279,8 +63471,10 @@ namespace cimg_library_suffixed { const unsigned int z0, const unsigned int c0, const unsigned int x1, const unsigned int y1, const unsigned int z1, const unsigned int c1) { -#define _cimg_load_cimg_case2(Ts,Tss) \ - if (!loaded && !cimg::strcasecmp(Ts,str_pixeltype)) { \ +#define _cimg_load_cimg_case2(Ts1,Ts2,Ts3,Tss) \ + if (!loaded && ((Ts1 && !cimg::strcasecmp(Ts1,str_pixeltype)) || \ + (Ts2 && !cimg::strcasecmp(Ts2,str_pixeltype)) || \ + (Ts3 && !cimg::strcasecmp(Ts3,str_pixeltype)))) { \ for (unsigned int l = 0; l<=nn1; ++l) { \ j = 0; while ((i=std::fgetc(nfile))!='\n' && i>=0) tmp[j++] = (char)i; tmp[j] = 0; \ W = H = D = C = 0; \ @@ -61358,7 +63552,7 @@ namespace cimg_library_suffixed { unsigned int j, N, W, H, D, C; int i, err; j = 0; while ((i=std::fgetc(nfile))!='\n' && i!=EOF && j<256) tmp[j++] = (char)i; tmp[j] = 0; - err = cimg_sscanf(tmp,"%u%*c%255[A-Za-z64_]%*c%255[sA-Za-z_ ]", + err = cimg_sscanf(tmp,"%u%*c%255[A-Za-z123468_]%*c%255[sA-Za-z_ ]", &N,str_pixeltype._data,str_endian._data); if (err<2) { if (!file) cimg::fclose(nfile); @@ -61377,24 +63571,20 @@ namespace cimg_library_suffixed { cimglist_instance, n0,x0,y0,z0,c0,n1,x1,y1,z1,c1,filename?filename:"(FILE*)",N); assign(1 + nn1 - n0); - _cimg_load_cimg_case2("bool",bool); - _cimg_load_cimg_case2("unsigned_char",unsigned char); - _cimg_load_cimg_case2("uchar",unsigned char); - _cimg_load_cimg_case2("char",char); - _cimg_load_cimg_case2("unsigned_short",unsigned short); - _cimg_load_cimg_case2("ushort",unsigned short); - _cimg_load_cimg_case2("short",short); - _cimg_load_cimg_case2("unsigned_int",unsigned int); - _cimg_load_cimg_case2("uint",unsigned int); - _cimg_load_cimg_case2("int",int); - _cimg_load_cimg_case2("unsigned_long",ulongT); - _cimg_load_cimg_case2("ulong",ulongT); - _cimg_load_cimg_case2("long",longT); - _cimg_load_cimg_case2("unsigned_int64",uint64T); - _cimg_load_cimg_case2("uint64",uint64T); - _cimg_load_cimg_case2("int64",int64T); - _cimg_load_cimg_case2("float",float); - _cimg_load_cimg_case2("double",double); + _cimg_load_cimg_case2("bool",0,0,cimg_uint8); + _cimg_load_cimg_case2("uint8","unsigned char","uchar",cimg_uint8); + _cimg_load_cimg_case2("int8",0,0,cimg_int8); + _cimg_load_cimg_case2("char",0,0,char); + _cimg_load_cimg_case2("uint16","unsigned_short","ushort",cimg_uint16); + _cimg_load_cimg_case2("int16","short",0,cimg_int16); + _cimg_load_cimg_case2("uint32","unsigned_int","uint",cimg_uint32); + _cimg_load_cimg_case2("int32","int",0,cimg_int32); + _cimg_load_cimg_case2("unsigned_long","ulong",0,cimg_ulong); + _cimg_load_cimg_case2("long",0,0,cimg_long); + _cimg_load_cimg_case2("uint64","unsigned_int64",0,cimg_uint64); + _cimg_load_cimg_case2("int64",0,0,cimg_int64); + _cimg_load_cimg_case2("float32","float",0,cimg_float32); + _cimg_load_cimg_case2("float64","double",0,cimg_float64); if (!loaded) { if (!file) cimg::fclose(nfile); throw CImgIOException(_cimglist_instance @@ -61584,7 +63774,7 @@ namespace cimg_library_suffixed { cimglist_instance); if (chroma_subsampling!=420 && chroma_subsampling!=422 && chroma_subsampling!=444) throw CImgArgumentException(_cimglist_instance - "load_yuv(): Specified chroma subsampling '%u' is invalid, for file '%s'.", + "load_yuv(): Specified chroma subsampling %u is invalid, for file '%s'.", cimglist_instance, chroma_subsampling,filename?filename:"(FILE*)"); const unsigned int @@ -61707,7 +63897,7 @@ namespace cimg_library_suffixed { cimglist_instance,filename); return load_ffmpeg_external(filename); #else - static cv::VideoCapture *captures[32] = { 0 }; + static cv::VideoCapture *captures[32] = {}; static CImgList filenames(32); static CImg positions(32,1,1,1,0); static int last_used_index = -1; @@ -61861,7 +64051,7 @@ namespace cimg_library_suffixed { cimg::ffmpeg_path(), CImg::string(filename)._system_strescape().data(), CImg::string(filename_tmp2)._system_strescape().data()); - cimg::system(command, cimg::ffmpeg_path()); + cimg::system(command,cimg::ffmpeg_path()); const unsigned int omode = cimg::exception_mode(); cimg::exception_mode(0); assign(); @@ -61925,7 +64115,7 @@ namespace cimg_library_suffixed { cimg::imagemagick_path(), CImg::string(filename)._system_strescape().data(), CImg::string(filename_tmp)._system_strescape().data()); - cimg::system(command, cimg::imagemagick_path()); + cimg::system(command,cimg::imagemagick_path()); const unsigned int omode = cimg::exception_mode(); cimg::exception_mode(0); assign(); @@ -61988,7 +64178,7 @@ namespace cimg_library_suffixed { cimg::gunzip_path(), CImg::string(filename)._system_strescape().data(), CImg::string(filename_tmp)._system_strescape().data()); - cimg::system(command, cimg::gunzip_path()); + cimg::system(command,cimg::gunzip_path()); if (!(file=cimg::std_fopen(filename_tmp,"rb"))) { cimg::fclose(cimg::fopen(filename,"r")); throw CImgIOException(_cimglist_instance @@ -62013,20 +64203,20 @@ namespace cimg_library_suffixed { \param first_frame Index of first image frame to read. \param last_frame Index of last image frame to read. \param step_frame Step applied between each frame. + \param[out] bits_per_value Number of bits used to store a scalar value in the image file. \param[out] voxel_size Voxel size, as stored in the filename. \param[out] description Description, as stored in the filename. **/ CImgList& load_tiff(const char *const filename, const unsigned int first_frame=0, const unsigned int last_frame=~0U, - const unsigned int step_frame=1, - float *const voxel_size=0, - CImg *const description=0) { + const unsigned int step_frame=1, unsigned int *const bits_per_value=0, + float *const voxel_size=0, CImg *const description=0) { const unsigned int nfirst_frame = first_frame=nb_images) nlast_frame = nb_images - 1; assign(1 + (nlast_frame - nfirst_frame)/nstep_frame); TIFFSetDirectory(tif,0); - cimglist_for(*this,l) _data[l]._load_tiff(tif,nfirst_frame + l*nstep_frame,voxel_size,description); + cimglist_for(*this,l) + _data[l]._load_tiff(tif,nfirst_frame + l*nstep_frame,bits_per_value,voxel_size,description); TIFFClose(tif); } else throw CImgIOException(_cimglist_instance "load_tiff(): Failed to open file '%s'.", @@ -62067,10 +64258,9 @@ namespace cimg_library_suffixed { //! Load a multi-page TIFF file \newinstance. static CImgList get_load_tiff(const char *const filename, const unsigned int first_frame=0, const unsigned int last_frame=~0U, - const unsigned int step_frame=1, - float *const voxel_size=0, - CImg *const description=0) { - return CImgList().load_tiff(filename,first_frame,last_frame,step_frame,voxel_size,description); + const unsigned int step_frame=1, unsigned int *const bits_per_value=0, + float *const voxel_size=0, CImg *const description=0) { + return CImgList().load_tiff(filename,first_frame,last_frame,step_frame,bits_per_value,voxel_size,description); } //@} @@ -62102,7 +64292,7 @@ namespace cimg_library_suffixed { if (_data) std::fprintf(cimg::output(),"..%p.\n",(void*)((char*)end() - 1)); else std::fprintf(cimg::output(),".\n"); - char tmp[16] = { 0 }; + char tmp[16] = {}; cimglist_for(*this,ll) { cimg_snprintf(tmp,sizeof(tmp),"[%d]",ll); std::fprintf(cimg::output()," "); @@ -62414,7 +64604,6 @@ namespace cimg_library_suffixed { #else #define _cimg_save_gif_extension "ppm" #endif - do { cimg_snprintf(filename_tmp,filename_tmp._width,"%s%c%s", cimg::temporary_path(),cimg_file_separator,cimg::filenamerand()); @@ -62424,11 +64613,18 @@ namespace cimg_library_suffixed { cimglist_for(*this,l) { cimg_snprintf(filename_tmp2,filename_tmp2._width,"%s_%.6u." _cimg_save_gif_extension,filename_tmp._data,l + 1); CImg::string(filename_tmp2).move_to(filenames); - if (_data[l]._depth>1 || _data[l]._spectrum!=3) _data[l].get_resize(-100,-100,1,3).save(filename_tmp2); - else _data[l].save(filename_tmp2); + CImg frame; + if (_data[l]._depth>1) _data[l].get_slice(0).move_to(frame); else frame.assign(_data[l],true); + if (frame._spectrum>4) frame.assign(frame.get_channels(0,3),false); + else if (frame._spectrum==1) frame.assign(frame.get_resize(-100,-100,1,3),false); + else if (frame._spectrum==2) + frame.assign(frame.get_resize(-100,-100,1,4).draw_image(0,0,0,2,frame.get_shared_channel(0)),false); + frame.save(filename_tmp2); } - cimg_snprintf(command,command._width,"\"%s\" -delay %u -loop %u", - cimg::imagemagick_path(),(unsigned int)std::max(0.f,cimg::round(100/fps)),nb_loops); + cimg_snprintf(command,command._width,"\"%s\" -delay %u -loop %u -dispose previous", + cimg::imagemagick_path(), + (unsigned int)std::max(0.f,cimg::round(100/fps)), + nb_loops); CImg::string(command).move_to(filenames,0); cimg_snprintf(command,command._width,"\"%s\"", CImg::string(filename)._system_strescape().data()); @@ -62437,7 +64633,7 @@ namespace cimg_library_suffixed { cimg_for(_command,p,char) if (!*p) *p = ' '; _command.back() = 0; - cimg::system(_command, cimg::imagemagick_path()); + cimg::system(_command,cimg::imagemagick_path()); file = cimg::std_fopen(filename,"rb"); if (!file) throw CImgIOException(_cimglist_instance @@ -62544,10 +64740,7 @@ namespace cimg_library_suffixed { const char *const ptype = pixel_type(), *const etype = cimg::endianness()?"big":"little"; std::FILE *const nfile = file?file:cimg::fopen(filename,"wb"); const bool is_bool = ptype==cimg::type::string(); - if (!is_bool && std::strstr(ptype,"unsigned")==ptype) - std::fprintf(nfile,"%u unsigned_%s %s_endian\n",_width,ptype + 9,etype); - else - std::fprintf(nfile,"%u %s %s_endian\n",_width,ptype,etype); + std::fprintf(nfile,"%u %s %s_endian\n",_width,ptype,etype); cimglist_for(*this,l) { const CImg& img = _data[l]; @@ -62619,8 +64812,10 @@ namespace cimg_library_suffixed { const unsigned int n0, const unsigned int x0, const unsigned int y0, const unsigned int z0, const unsigned int c0) const { -#define _cimg_save_cimg_case(Ts,Tss) \ - if (!saved && !cimg::strcasecmp(Ts,str_pixeltype)) { \ +#define _cimg_save_cimg_case(Ts1,Ts2,Ts3,Tss) \ + if (!saved && ((Ts1 && !cimg::strcasecmp(Ts1,str_pixeltype)) || \ + (Ts2 && !cimg::strcasecmp(Ts2,str_pixeltype)) || \ + (Ts3 && !cimg::strcasecmp(Ts3,str_pixeltype)))) { \ for (unsigned int l = 0; l::string(filename_tmp)._system_strescape().data(), CImg::string(filename)._system_strescape().data()); - cimg::system(command, cimg::gzip_path()); + cimg::system(command,cimg::gzip_path()); file = cimg::std_fopen(filename,"rb"); if (!file) throw CImgIOException(_cimglist_instance @@ -62900,7 +65093,7 @@ namespace cimg_library_suffixed { CImg nfilename(1024); cimglist_for(*this,l) { cimg::number_filename(body,l,6,nfilename); - if (*ext) cimg_sprintf(nfilename._data + std::strlen(nfilename),".%s",ext); + if (*ext) cimg_snprintf(nfilename._data + std::strlen(nfilename),64,".%s",ext); _data[l].save_gzip_external(nfilename); } } @@ -62922,7 +65115,7 @@ namespace cimg_library_suffixed { return save_ffmpeg_external(filename,fps); #else try { - static cv::VideoWriter *writers[32] = { 0 }; + static cv::VideoWriter *writers[32] = {}; static CImgList filenames(32); static CImg sizes(32,2,1,1,0); static int last_used_index = -1; @@ -62993,18 +65186,21 @@ namespace cimg_library_suffixed { cimg::warn(_cimglist_instance "save_video(): Skip empty frame %d for file '%s'.", cimglist_instance,l,filename); - if (src._depth>1 || src._spectrum>3) + if (src._spectrum>3) cimg::warn(_cimglist_instance "save_video(): Frame %u has incompatible dimension (%u,%u,%u,%u). " "Some image data may be ignored when writing frame into video file '%s'.", cimglist_instance,l,src._width,src._height,src._depth,src._spectrum,filename); - if (src._width==W && src._height==H && src._spectrum==3) - writers[index]->write(CImg(src)._cimg2cvmat()); - else { - CImg _src(src,false); - _src.channels(0,std::min(_src._spectrum - 1,2U)).resize(W,H); - _src.resize(W,H,1,3,_src._spectrum==1); - writers[index]->write(_src._cimg2cvmat()); + cimg_forZ(src,z) { + CImg _src = src._depth>1?src.get_slice(z):src.get_shared(); + if (_src._width==W && _src._height==H && _src._spectrum==3) + writers[index]->write(CImg(_src)._cimg2cvmat()); + else { + CImg __src(_src,false); + __src.channels(0,std::min(__src._spectrum - 1,2U)).resize(W,H); + __src.resize(W,H,1,3,__src._spectrum==1); + writers[index]->write(__src._cimg2cvmat()); + } } } cimg::mutex(9,0); @@ -63062,23 +65258,28 @@ namespace cimg_library_suffixed { cimg_snprintf(filename_tmp2,filename_tmp2._width,"%s_000001.ppm",filename_tmp._data); if ((file=cimg::std_fopen(filename_tmp2,"rb"))!=0) cimg::fclose(file); } while (file); + unsigned int frame = 1; cimglist_for(*this,l) { - cimg_snprintf(filename_tmp2,filename_tmp2._width,"%s_%.6u.ppm",filename_tmp._data,l + 1); - CImg::string(filename_tmp2).move_to(filenames); - CImg tmp = _data[l].get_shared(); - if (tmp._width%2 || tmp._height%2) // Force output to have an even number of columns and rows - tmp.assign(tmp.get_resize(tmp._width + (tmp._width%2),tmp._height + (tmp._height%2),1,-100,0),false); - if (tmp._depth>1 || tmp._spectrum!=3) // Force output to be one slice, in color - tmp.assign(tmp.get_resize(-100,-100,1,3),false); - tmp.save_pnm(filename_tmp2); + CImg& src = _data[l]; + cimg_forZ(src,z) { + cimg_snprintf(filename_tmp2,filename_tmp2._width,"%s_%.6u.ppm",filename_tmp._data,frame); + CImg::string(filename_tmp2).move_to(filenames); + CImg _src = src._depth>1?src.get_slice(z):src.get_shared(); + if (_src._width%2 || _src._height%2) // Force output to have an even number of columns and rows + _src.assign(_src.get_resize(_src._width + (_src._width%2),_src._height + (_src._height%2),1,-100,0),false); + if (_src._spectrum!=3) // Force output to be one slice, in color + _src.assign(_src.get_resize(-100,-100,1,3),false); + _src.save_pnm(filename_tmp2); + ++frame; + } } cimg_snprintf(command,command._width, - "\"%s\" -v -8 -y -i \"%s_%%6d.ppm\" -pix_fmt yuv420p -vcodec %s -b %uk -r %u \"%s\"", + "\"%s\" -framerate %u -v -8 -y -i \"%s_%%6d.ppm\" -pix_fmt yuv420p -vcodec %s -b %uk -r %u \"%s\"", cimg::ffmpeg_path(), - CImg::string(filename_tmp)._system_strescape().data(), + fps,CImg::string(filename_tmp)._system_strescape().data(), _codec,bitrate,fps, CImg::string(filename)._system_strescape().data()); - cimg::system(command, cimg::ffmpeg_path()); + cimg::system(command,cimg::ffmpeg_path()); file = cimg::std_fopen(filename,"rb"); if (!file) throw CImgIOException(_cimglist_instance @@ -63094,8 +65295,9 @@ namespace cimg_library_suffixed { /** \param is_compressed tells if zlib compression must be used for serialization (this requires 'cimg_use_zlib' been enabled). + \param header_size Reserve empty bytes as a starting header. **/ - CImg get_serialize(const bool is_compressed=false) const { + CImg get_serialize(const bool is_compressed=false, const unsigned int header_size=0) const { #ifndef cimg_use_zlib if (is_compressed) cimg::warn(_cimglist_instance @@ -63104,12 +65306,10 @@ namespace cimg_library_suffixed { cimglist_instance); #endif CImgList stream; + if (header_size) CImg(1,header_size,1,1,0).move_to(stream); CImg tmpstr(128); const char *const ptype = pixel_type(), *const etype = cimg::endianness()?"big":"little"; - if (std::strstr(ptype,"unsigned")==ptype) - cimg_snprintf(tmpstr,tmpstr._width,"%u unsigned_%s %s_endian\n",_width,ptype + 9,etype); - else - cimg_snprintf(tmpstr,tmpstr._width,"%u %s %s_endian\n",_width,ptype,etype); + cimg_snprintf(tmpstr,tmpstr._width,"%u %s %s_endian\n",_width,ptype,etype); CImg::string(tmpstr,false).move_to(stream); cimglist_for(*this,l) { const CImg& img = _data[l]; @@ -63141,23 +65341,34 @@ namespace cimg_library_suffixed { if (failed_to_compress) { // Write in a non-compressed way CImg::string("\n",false).move_to(stream); stream.insert(1); - stream.back().assign((unsigned char*)ref._data,ref.size()*sizeof(T),1,1,1,true); + stream.back(). + assign((unsigned char*)ref._data,ref._width,ref._height,ref._depth,ref._spectrum*sizeof(T),true); } } else CImg::string("\n",false).move_to(stream); } - cimglist_apply(stream,unroll)('y'); - return stream>'y'; + + // Determine best serialized image dimensions to store the whole buffer. + ulongT siz = 0; + cimglist_for(stream,l) siz+=stream[l].size(); + const ulongT max_siz = (ulongT)cimg::type::max(); + const unsigned int + nw = (unsigned int)(siz/max_siz + ((siz%max_siz)?1:0)), + nh = (unsigned int)(siz/nw + (siz%nw?1:0)); + CImg res(nw,nh,1,1,0); + unsigned char *ptr = res.data(); + cimglist_for(stream,l) { siz = stream[l].size(); std::memcpy(ptr,stream[l]._data,siz); ptr+=siz; } + return res; } //! Unserialize a CImg serialized buffer into a CImgList list. template - static CImgList get_unserialize(const CImg& buffer) { + static CImgList get_unserialize(const CImg& buffer, const unsigned int header_size=0) { #ifdef cimg_use_zlib #define _cimgz_unserialize_case(Tss) { \ Bytef *cbuf = 0; \ if (sizeof(t)!=1 || buffer.pixel_type()==cimg::type::string()) { \ cbuf = new Bytef[csiz]; Bytef *_cbuf = cbuf; \ - for (ulongT k = 0; k::get_unserialize(): Specified serialized buffer is (null).", pixel_type()); CImgList res; - const t *stream = buffer._data, *const estream = buffer._data + buffer.size(); + const t *stream = buffer._data + header_size, *const estream = buffer._data + buffer.size(); bool loaded = false, endian = cimg::endianness(), is_bytef = false; CImg tmp(256), str_pixeltype(256), str_endian(256); *tmp = *str_pixeltype = *str_endian = 0; @@ -63215,7 +65428,7 @@ namespace cimg_library_suffixed { j = 0; while ((i=(int)*stream)!='\n' && stream::get_unserialize(): CImg header not found in serialized buffer.", @@ -63223,21 +65436,18 @@ namespace cimg_library_suffixed { if (!cimg::strncasecmp("little",str_endian,6)) endian = false; else if (!cimg::strncasecmp("big",str_endian,3)) endian = true; res.assign(N); - _cimg_unserialize_case("bool",bool); - _cimg_unserialize_case("unsigned_char",unsigned char); - _cimg_unserialize_case("uchar",unsigned char); - _cimg_unserialize_case("char",char); - _cimg_unserialize_case("unsigned_short",unsigned short); - _cimg_unserialize_case("ushort",unsigned short); - _cimg_unserialize_case("short",short); - _cimg_unserialize_case("unsigned_int",unsigned int); - _cimg_unserialize_case("uint",unsigned int); - _cimg_unserialize_case("int",int); - _cimg_unserialize_case("unsigned_int64",uint64T); - _cimg_unserialize_case("uint64",uint64T); - _cimg_unserialize_case("int64",int64T); - _cimg_unserialize_case("float",float); - _cimg_unserialize_case("double",double); + _cimg_unserialize_case("bool",0,0,cimg_uint8); + _cimg_unserialize_case("uint8","unsigned_char","uchar",cimg_uint8); + _cimg_unserialize_case("int8",0,0,cimg_int8); + _cimg_unserialize_case("char",0,0,char); + _cimg_unserialize_case("uint16","unsigned_short","ushort",cimg_uint16); + _cimg_unserialize_case("int16","short",0,cimg_int16); + _cimg_unserialize_case("uint32","unsigned_int","uint",cimg_uint32); + _cimg_unserialize_case("int32","int",0,cimg_int32); + _cimg_unserialize_case("uint64","unsigned_int64",0,cimg_uint64); + _cimg_unserialize_case("int64",0,0,cimg_int64); + _cimg_unserialize_case("float32","float",0,cimg_float32); + _cimg_unserialize_case("float64","double",0,cimg_float64); if (!loaded) throw CImgArgumentException("CImgList<%s>::get_unserialize(): Unsupported pixel type '%s' defined " "in serialized buffer.", @@ -63335,7 +65545,7 @@ namespace cimg_library_suffixed { // Find optimal font cache location to return. static CImgList fonts[16]; - static bool is_variable_widths[16] = { 0 }; + static bool is_variable_widths[16] = {}; ind = ~0U; for (int i = 0; i<16; ++i) if (!fonts[i] || (is_variable_widths[i]==is_variable_width && requested_height==fonts[i][0]._height)) { @@ -63355,8 +65565,7 @@ namespace cimg_library_suffixed { basef.get_split('x',256).move_to(font); if (requested_height!=font[0]._height) cimglist_for(font,l) { - font[l].resize(std::max(1U,font[l]._width*requested_height/font[l]._height),requested_height,-100,-100, - font[0]._height>requested_height?2:5); + font[l].resize(std::max(1U,font[l]._width*requested_height/font[l]._height),requested_height,-100,-100,5); cimg_for(font[l],ptr,ucharT) *ptr = font_resizemap[*ptr]; } if (is_variable_width) { // Crop font @@ -63377,7 +65586,7 @@ namespace cimg_library_suffixed { if (' ' + 256 wpath(err); + CImg wpath((unsigned int)err); err = MultiByteToWideChar(CP_UTF8,0,path,-1,wpath,err); if (err) { // Convert 'mode' to a wide-character string err = MultiByteToWideChar(CP_UTF8,0,mode,-1,0,0); if (err) { - CImg wmode(err); + CImg wmode((unsigned int)err); if (MultiByteToWideChar(CP_UTF8,0,mode,-1,wmode,err)) return _wfopen(wpath,wmode); } @@ -63538,7 +65747,7 @@ namespace cimg_library_suffixed { // Try alternative method, with wide-character string. int err = MultiByteToWideChar(CP_UTF8,0,path,-1,0,0); if (err) { - CImg wpath(err); + CImg wpath((unsigned int)err); if (MultiByteToWideChar(CP_UTF8,0,path,-1,wpath,err)) res = GetFileAttributesW(wpath); } } @@ -64046,7 +66255,7 @@ namespace cimg_library_suffixed { inline const char* temporary_path(const char *const user_path, const bool reinit_path) { #define _cimg_test_temporary_path(p) \ if (!path_found) { \ - cimg_snprintf(s_path,s_path.width(),"%s",p); \ + cimg_snprintf(s_path,s_path._width,"%s",p); \ cimg_snprintf(tmp,tmp._width,"%s%c%s",s_path.data(),cimg_file_separator,filename_tmp._data); \ if ((file=cimg::std_fopen(tmp,"wb"))!=0) { cimg::fclose(file); std::remove(tmp); path_found = true; } \ } @@ -64129,6 +66338,36 @@ namespace cimg_library_suffixed { return s_path; } +#if cimg_OS==2 + //! Get/set path to the \c powershell binary. + /** + \param user_path Specified path, or \c 0 to get the path currently used. + \param reinit_path Force path to be recalculated (may take some time). + \return Path containing the \c wget binary. + **/ + inline const char *powershell_path(const char *const user_path, const bool reinit_path) { + static CImg s_path; + cimg::mutex(7); + if (reinit_path) s_path.assign(); + if (user_path) { + if (!s_path) s_path.assign(1024); + std::strncpy(s_path,user_path,1023); + } else if (!s_path) { + s_path.assign(1024); + bool path_found = false; + std::FILE *file = 0; + if (win_searchpath("powershell.exe",s_path,s_path._width)) path_found = true; + if (!path_found) { + std::strcpy(s_path,".\\powershell.exe"); + if ((file=cimg::std_fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } + } + if (!path_found) std::strcpy(s_path,"powershell.exe"); + winformat_string(s_path); + } + cimg::mutex(7,0); + return s_path; + } +#endif // [internal] Sorting function, used by cimg::files(). inline int _sort_files(const void* a, const void* b) { @@ -64143,8 +66382,8 @@ namespace cimg_library_suffixed { const unsigned int siz = (unsigned int)std::strlen(filename); CImg format(16), body(siz + 32); const char *const ext = cimg::split_filename(filename,body); - if (*ext) cimg_snprintf(format,format.width(),"%%s_%%.%ud.%%s",digits); - else cimg_snprintf(format,format.width(),"%%s_%%.%ud",digits); + if (*ext) cimg_snprintf(format,format._width,"%%s_%%.%ud.%%s",digits); + else cimg_snprintf(format,format._width,"%%s_%%.%ud",digits); cimg_snprintf(str,1024,format._data,body._data,number,ext); return str; } @@ -64276,17 +66515,19 @@ namespace cimg_library_suffixed { if (!file && !filename) throw CImgArgumentException("cimg::ftype(): Specified filename is (null)."); static const char - *const _pnm = "pnm", - *const _pfm = "pfm", *const _bmp = "bmp", + *const _cr2 = "cr2", + *const _dcm = "dcm", *const _gif = "gif", + *const _inr = "inr", *const _jpg = "jpg", *const _off = "off", *const _pan = "pan", + *const _pfm = "pfm", *const _png = "png", - *const _tif = "tif", - *const _inr = "inr", - *const _dcm = "dcm"; + *const _pnm = "pnm", + *const _tif = "tif"; + const char *f_type = 0; CImg header; const unsigned int omode = cimg::exception_mode(); @@ -64311,7 +66552,12 @@ namespace cimg_library_suffixed { else if (uheader[0]==0x89 && uheader[1]==0x50 && uheader[2]==0x4E && uheader[3]==0x47 && uheader[4]==0x0D && uheader[5]==0x0A && uheader[6]==0x1A && uheader[7]==0x0A) // PNG f_type = _png; - else if ((uheader[0]==0x49 && uheader[1]==0x49) || (uheader[0]==0x4D && uheader[1]==0x4D)) // TIFF + else if (uheader[0]==0x49 && uheader[1]==0x49 && uheader[2]==0x2A && uheader[3]==0x00 && // CR2 + uheader[4]==0x10 && uheader[5]==0x00 && uheader[6]==0x00 && uheader[7]==0x00 && + uheader[8]==0x43 && uheader[9]==0x52) + f_type = _cr2; + else if ((uheader[0]==0x49 && uheader[1]==0x49 && uheader[2]==0x2A && uheader[3]==0x00) || + (uheader[0]==0x4D && uheader[1]==0x4D && uheader[2]==0x00 && uheader[3]==0x2A)) // TIFF f_type = _tif; else { // PNM or PFM CImgList _header = header.get_split(CImg::vector('\n'),0,false); @@ -64337,12 +66583,13 @@ namespace cimg_library_suffixed { \param timeout Maximum time (in seconds) authorized for downloading the file from the URL. \param try_fallback When using libcurl, tells using system calls as fallbacks in case of libcurl failure. \param referer Referer used, as a C-string. + \param user_agent User agent used, as a C-string. \return Value of \c filename_local. \note Use the \c libcurl library, or the external binaries \c wget or \c curl to perform the download. **/ inline char *load_network(const char *const url, char *const filename_local, const unsigned int timeout, const bool try_fallback, - const char *const referer) { + const char *const referer, const char *const user_agent) { if (!url) throw CImgArgumentException("cimg::load_network(): Specified URL is (null)."); if (!filename_local) @@ -64359,7 +66606,7 @@ namespace cimg_library_suffixed { do { cimg_snprintf(filename_local,256,"%s%c%s%s", cimg::temporary_path(),cimg_file_separator,cimg::filenamerand(),ext._data); - if ((file=cimg::std_fopen(filename_local,"rb"))!=0) cimg::fclose(file); + if ((file = cimg::std_fopen(filename_local,"rb"))!=0) cimg::fclose(file); } while (file); #ifdef cimg_use_curl @@ -64377,9 +66624,11 @@ namespace cimg_library_suffixed { curl_easy_setopt(curl,CURLOPT_SSL_VERIFYPEER,0L); curl_easy_setopt(curl,CURLOPT_SSL_VERIFYHOST,0L); curl_easy_setopt(curl,CURLOPT_FOLLOWLOCATION,1L); + curl_easy_setopt(curl,CURLOPT_MAXREDIRS,20L); if (timeout) curl_easy_setopt(curl,CURLOPT_TIMEOUT,(long)timeout); if (std::strchr(url,'?')) curl_easy_setopt(curl,CURLOPT_HTTPGET,1L); if (referer) curl_easy_setopt(curl,CURLOPT_REFERER,referer); + if (user_agent) curl_easy_setopt(curl,CURLOPT_USERAGENT,user_agent); res = curl_easy_perform(curl); curl_easy_cleanup(curl); cimg::fseek(file,0,SEEK_END); // Check if file size is 0 @@ -64395,58 +66644,58 @@ namespace cimg_library_suffixed { if (!try_fallback) throw CImgIOException("cimg::load_network(): Failed to load file '%s' with libcurl.",url); #endif - CImg command((unsigned int)std::strlen(url) + 64); + CImg command((unsigned int)std::strlen(url) + 1024), s_referer, s_user_agent, s_timeout; cimg::unused(try_fallback); // Try with 'curl' first. - if (timeout) { - if (referer) - cimg_snprintf(command,command._width,"\"%s\" -e %s -m %u -f --silent --compressed -o \"%s\" \"%s\"", - cimg::curl_path(),referer,timeout,filename_local, - CImg::string(url)._system_strescape().data()); - else - cimg_snprintf(command,command._width,"\"%s\" -m %u -f --silent --compressed -o \"%s\" \"%s\"", - cimg::curl_path(),timeout,filename_local, - CImg::string(url)._system_strescape().data()); - } else { - if (referer) - cimg_snprintf(command,command._width,"\"%s\" -e %s -f --silent --compressed -o \"%s\" \"%s\"", - cimg::curl_path(),referer,filename_local, - CImg::string(url)._system_strescape().data()); - else - cimg_snprintf(command,command._width,"\"%s\" -f --silent --compressed -o \"%s\" \"%s\"", - cimg::curl_path(),filename_local, - CImg::string(url)._system_strescape().data()); + if (timeout) cimg_snprintf(s_timeout.assign(64),64,"-m %u ",timeout); + else s_timeout.assign(1,1,1,1,0); + if (referer) cimg_snprintf(s_referer.assign(1024),1024,"-e %s ",referer); + else s_referer.assign(1,1,1,1,0); + if (user_agent) cimg_snprintf(s_user_agent.assign(1024),1024,"-A \"%s\" ",user_agent); + else s_user_agent.assign(1,1,1,1,0); + cimg_snprintf(command,command._width, + "\"%s\" -L --max-redirs 20 %s%s%s-f --silent --compressed -o \"%s\" \"%s\"", + cimg::curl_path(),s_timeout._data,s_referer._data,s_user_agent._data,filename_local, + CImg::string(url)._system_strescape().data()); + cimg::system(command,cimg::curl_path()); + +#if cimg_OS==2 + if (cimg::fsize(filename_local)<=0) { // Try with 'powershell' otherwise. + if (timeout) cimg_snprintf(s_timeout.assign(64),64,"-TimeoutSec %u ",timeout); + else s_timeout.assign(1,1,1,1,0); + if (referer) cimg_snprintf(s_referer.assign(1024),1024,"-Headers @{'Referer'='%s'} ",referer); + else s_referer.assign(1,1,1,1,0); + if (user_agent) cimg_snprintf(s_user_agent.assign(1024),1024,"-UserAgent \"%s\" ",user_agent); + else s_user_agent.assign(1,1,1,1,0); + cimg_snprintf(command,command._width, + "\"%s\" -NonInteractive -Command Invoke-WebRequest %s%s%s-OutFile \"%s\" -Uri \"%s\"", + cimg::powershell_path(),s_timeout._data,s_referer._data,s_user_agent._data,filename_local, + CImg::string(url)._system_strescape().data()); + cimg::system(command,cimg::powershell_path()); } - cimg::system(command, cimg::curl_path()); +#endif - if (!(file=cimg::std_fopen(filename_local,"rb"))) { + if (cimg::fsize(filename_local)<=0) { // Try with 'wget' otherwise. + if (timeout) cimg_snprintf(s_timeout.assign(64),64,"-T %u ",timeout); + else s_timeout.assign(1,1,1,1,0); + if (referer) cimg_snprintf(s_referer.assign(1024),1024,"--referer=%s ",referer); + else s_referer.assign(1,1,1,1,0); + if (user_agent) cimg_snprintf(s_user_agent.assign(1024),1024,"--user-agent=\"%s\" ",user_agent); + else s_user_agent.assign(1,1,1,1,0); + cimg_snprintf(command,command._width, + "\"%s\" --max-redirect=20 %s%s%s-q -r -l 0 --no-cache -O \"%s\" \"%s\"", + cimg::wget_path(),s_timeout._data,s_referer._data,s_user_agent._data,filename_local, + CImg::string(url)._system_strescape().data()); + cimg::system(command,cimg::wget_path()); - // Try with 'wget' otherwise. - if (timeout) { - if (referer) - cimg_snprintf(command,command._width,"\"%s\" --referer=%s -T %u -q -r -l 0 --no-cache -O \"%s\" \"%s\"", - cimg::wget_path(),referer,timeout,filename_local, - CImg::string(url)._system_strescape().data()); - else - cimg_snprintf(command,command._width,"\"%s\" -T %u -q -r -l 0 --no-cache -O \"%s\" \"%s\"", - cimg::wget_path(),timeout,filename_local, - CImg::string(url)._system_strescape().data()); - } else { - if (referer) - cimg_snprintf(command,command._width,"\"%s\" --referer=%s -q -r -l 0 --no-cache -O \"%s\" \"%s\"", - cimg::wget_path(),referer,filename_local, - CImg::string(url)._system_strescape().data()); - else - cimg_snprintf(command,command._width,"\"%s\" -q -r -l 0 --no-cache -O \"%s\" \"%s\"", - cimg::wget_path(),filename_local, - CImg::string(url)._system_strescape().data()); - } - cimg::system(command, cimg::wget_path()); - - if (!(file=cimg::std_fopen(filename_local,"rb"))) + if (cimg::fsize(filename_local)<=0) throw CImgIOException("cimg::load_network(): Failed to load file '%s' with external commands " +#if cimg_OS==2 + "'wget', 'curl', or 'powershell'.",url); +#else "'wget' or 'curl'.",url); +#endif cimg::fclose(file); // Try gunzip it. @@ -64454,7 +66703,7 @@ namespace cimg_library_suffixed { std::rename(filename_local,command); cimg_snprintf(command,command._width,"\"%s\" --quiet \"%s.gz\"", gunzip_path(),filename_local); - cimg::system(command, gunzip_path()); + cimg::system(command,gunzip_path()); file = cimg::std_fopen(filename_local,"rb"); if (!file) { cimg_snprintf(command,command._width,"%s.gz",filename_local); @@ -64462,11 +66711,8 @@ namespace cimg_library_suffixed { file = cimg::std_fopen(filename_local,"rb"); } } - cimg::fseek(file,0,SEEK_END); // Check if file size is 0 - if (std::ftell(file)<=0) - throw CImgIOException("cimg::load_network(): Failed to load URL '%s' with external commands " - "'wget' or 'curl'.",url); - cimg::fclose(file); + + if (file) cimg::fclose(file); return filename_local; } @@ -64660,7 +66906,7 @@ namespace cimg_library_suffixed { draw_line(w - 1,0,w - 1,h - 1,black).draw_line(w - 1,h - 1,0,h - 1,black); if (logo._data) canvas.draw_image(lx,ly,logo); - unsigned int xbuttons[6] = { 0 }; + unsigned int xbuttons[6] = {}; cimglist_for(buttons,lll) { xbuttons[lll] = bx + (bw + 12)*lll; canvas.draw_image(xbuttons[lll],by,buttons[lll]); @@ -64740,8 +66986,8 @@ namespace cimg_library_suffixed { \par Example \code const double - res1 = cimg::eval("cos(x)^2 + sin(y)^2",2,2), // will return '1' - res2 = cimg::eval(0,1,1); // will return '1' too + res1 = cimg::eval("cos(x)^2 + sin(y)^2",2,2), // will return '1' + res2 = cimg::eval(0,1,1); // will return '1' too \endcode **/ inline double eval(const char *const expression, const double x, const double y, const double z, const double c) { @@ -64759,7 +67005,7 @@ namespace cimg_library_suffixed { } // namespace cimg_library { ... //! Short alias name. -namespace cil = cimg_library_suffixed; +namespace cil = cimg_library; #ifdef _cimg_redefine_False #define False 0 diff --git a/README.md b/README.md index a05bd7320..06b3fa78f 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,10 @@ -![Logo](http://cimg.eu/img/CImgLogo2.jpg) +![Logo](http://cimg.eu/img/logo_header.jpg) ##### http://cimg.eu ------------------ - -The **CImg Library** is a **small** and **open-source** **C++ toolkit** for **image processing**, designed with these properties in mind: +![Build](https://github.com/GreycLab/CImg/workflows/Build%20then%20test/badge.svg) +------------------ +The **CImg Library** is a **small** and **open-source** **C++ library** for **image processing**, designed with these properties in mind: ![Usefulness](http://cimg.eu/img/item_usefulness.jpg) **CImg** defines *classes* and *methods* to manage images in your own C++ code. You can use **CImg** to load/save various file formats, access pixel values, display/transform/filter images, draw primitives (text, faces, curves, 3d objects, ...), compute statistics, manage user interactions on images, and so on... @@ -11,7 +12,7 @@ The **CImg Library** is a **small** and **open-source** **C++ toolkit** for **im ![Portability](http://cimg.eu/img/item_portability.jpg) **CImg** is *self-contained*, *thread-safe* and *highly portable*. It fully works on *different operating systems* (`Unix,Windows,MacOS X,*BSD,...`) and is compatible with *various C++ compilers* (`Visual C++,g++,clang++,icc,...`). -![Simplicity](http://cimg.eu/img/item_simplicity.jpg) **CImg** is *lightweight*. It is made of a single header file [`CImg.h`](https://github.com/dtschump/CImg/raw/master/CImg.h) that must be included in your C++ source. It defines only *four* different classes, encapsulated in the namespace `cimg_library`. It can be compiled using a minimal set of standard C++ and system libraries only. *No need for exotic or complex dependencies*. +![Simplicity](http://cimg.eu/img/item_simplicity.jpg) **CImg** is *lightweight*. It is made of a single header file [`CImg.h`](https://github.com/GreycLab/CImg/raw/master/CImg.h) that must be included in your C++ source. It defines only *four* different classes, encapsulated in the namespace `cimg_library`. It can be compiled using a minimal set of standard C++ and system libraries only. *No need for exotic or complex dependencies*. ![Extensibility](http://cimg.eu/img/item_extensibility.jpg) Although not mandatory, **CImg** can use functionalities of external tools/libraries such as [Board](http://libboard.sourceforge.net/), [FFMPEG](http://ffmpeg.mplayerhq.hu/), [FFTW3](http://www.fftw.org/), [GraphicsMagick](http://www.graphicsmagick.org/), [ImageMagick](http://www.imagemagick.org/), [Lapack](http://www.netlib.org/lapack/), [libcurl](http://curl.haxx.se/libcurl/), [libjpeg](http://www.ijg.org/), [libpng](http://www.libpng.org/pub/png/libpng.html), [libtiff](http://www.libtiff.org/), [Magick++](http://www.imagemagick.org/Magick++/), [OpenEXR](http://www.openexr.com/), [OpenCV](http://http://opencv.willowgarage.com/wiki/), [OpenMP](http://www.openmp.org/) or [XMedCon](http://xmedcon.sourceforge.net/). Moreover, a simple *plug-in* mechanism allows any user to directly enhance the library capabilities according to their needs. diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 162029541..38b5894e3 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -106,6 +106,9 @@ SET(CIMG_MAGICK_CCFLAGS -Dcimg_use_magick) # ( http://www.fftw.org/ ) SET(CIMG_FFTW3_CCFLAGS -Dcimg_use_fftw3) +# Flags to enable native support for HEIC image files, using libheif. +# ( https://github.com/strukturag/libheif ) +SET(CIMG_HEIC_CCFLAGS -Dcimg_use_heic) @@ -118,6 +121,22 @@ FIND_PACKAGE(ZLIB) FIND_PACKAGE(LAPACK) FIND_PACKAGE(BLAS) +if(PKG_CONFIG_FOUND) + pkg_check_modules(PC_HEIF libheif QUIET) +endif() + +find_path(HEIF_INCLUDE_DIR NAMES libheif/heif_cxx.h + PATHS ${PC_HEIF_INCLUDEDIR}) +find_library(HEIF_LIBRARY NAMES heif libheif + PATHS ${PC_HEIF_LIBDIR}) + +set(HEIF_VERSION ${PC_HEIF_VERSION}) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(HEIF + REQUIRED_VARS HEIF_LIBRARY HEIF_INCLUDE_DIR + VERSION_VAR HEIF_VERSION) + PKG_CHECK_MODULES(FFTW3 fftw3) PKG_CHECK_MODULES(OPENEXR OpenEXR) PKG_CHECK_MODULES(MAGICK Magick++) @@ -200,7 +219,13 @@ if(MAGICK_FOUND) SET( SYSTEM_LIBS ${SYSTEM_LIBS} ${MAGICK_LIBRARIES} ) endif() - +if(HEIF_FOUND) + get_filename_component(HEIF_LIB_DIRS ${HEIF_LIBRARY} PATH) + SET(CIMG_CFLAGS "${CIMG_CFLAGS} ${CIMG_HEIC_CCFLAGS}") + link_directories( ${HEIF_LIB_DIRS} ) + include_directories( ${HEIF_INCLUDE_DIRS} ) + SET( SYSTEM_LIBS ${SYSTEM_LIBS} ${HEIF_LIBRARY} ) +endif() if( LIBAVCODEC_FOUND AND LIBAVFORMAT_FOUND AND LIBSWSCALE_FOUND AND LIBAVUTIL_FOUND ) diff --git a/examples/Makefile b/examples/Makefile index 702ac363c..75e8a36a7 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -153,7 +153,11 @@ VT100_CFLAGS = -Dcimg_use_vt100 # Flags to enable code optimization by the compiler. OPT_CFLAGS = -Ofast ifdef IS_GCC -OPT_CFLAGS = -Ofast -mtune=generic +# Add -mtune=generic for GCC if supported. +NO_MTUNE_GENERIC = $(shell $(CXX) -mtune=generic -E - < /dev/null > /dev/null 2>&1; echo $$?) +ifeq ($(NO_MTUNE_GENERIC),0) +OPT_CFLAGS += -mtune=generic +endif endif ifdef IS_ICPC OPT_CFLAGS = -fast diff --git a/examples/jawbreaker.cpp b/examples/jawbreaker.cpp index 187a35268..2f8d2ae76 100644 --- a/examples/jawbreaker.cpp +++ b/examples/jawbreaker.cpp @@ -99,6 +99,7 @@ int main(int argc, char **argv) { CImg board, previous_board, selected_board, shape, img(background); CImgDisplay disp(img.width(),img.height(),"Jawbreaker",0); bool redraw = true, gameover = false, title = true; + for (float opac = 0.0f; !disp.is_closed(); ) { // Init board @@ -113,10 +114,12 @@ int main(int argc, char **argv) { if (redraw) { (img=background).draw_text(2,2,"Score : %u",yellow,0,0.7f,24,score). draw_text(Wi - 90,2,"Best : %u",orange,0,0.9f,17,best_score); + if (selected_board) { cimg_forXY(selected_board,x,y) if (selected_board(x,y)) img.draw_image(x<<5,y<<5,balls[selected_board(x,y)],mask); } else cimg_forXY(board,x,y) if (board(x,y)) img.draw_image(x<<5,y<<5,balls[board(x,y)],mask); + if (title) { CImg text1, text2; text1.draw_text(0,0,"- Jawbreaker -",white,0,1,48).resize(-100,-100,1,3); diff --git a/html/CImg_documentation.h b/html/CImg_documentation.h index fcdd056c4..3f100daff 100644 --- a/html/CImg_documentation.h +++ b/html/CImg_documentation.h @@ -136,7 +136,7 @@ The CImg library is a very light and user-friendly library : only standard system libraries are used. It avoids handling complex dependencies and problems with library compatibility. - The only thing you need is a (quite modern) C++ compiler : + The only thing you need is a C++ compiler : - Microsoft Visual Studio.NET and Visual Express Edition : Use the project files and solution files provided in the %CImg Library package (directory 'compilation/') to see how it works. @@ -163,7 +163,7 @@ - Dev-Cpp : Use the project file provided in the CImg library package to see how it works. If you are using other compilers and encounter problems, please - write me since maintaining compatibility is one + write me since maintaining compatibility is one of the priorities of the %CImg Library. Nevertheless, old compilers that do not respect the C++ standard will not support the %CImg Library. @@ -208,10 +208,10 @@ \subsection ssf11 1.1. What is the CImg Library ? - The CImg Library is an open-source C++ toolkit for image processing.\n + The CImg Library is an open-source C++ library for image processing.\n It mainly consists in a (big) single header file - CImg.h + CImg.h providing a set of C++ classes and functions that can be used in your own sources, to load/save, manage/process and display generic images. It's actually a very simple and pleasant toolkit for coding image processing stuff in C++ : @@ -237,10 +237,10 @@ The package is distributed under the CeCILL license. This package contains : - - The main library file CImg.h (C++ header file). - - Several C++ source code showing examples of using CImg. + - The main library file CImg.h (C++ header file). + - Several C++ source code showing examples of using CImg. - A complete library documentation, in PDF format. - - Additional library plug-ins that can be used to extend + - Additional library plug-ins that can be used to extend library capabilities for specific uses. The CImg Library is a quite lightweight library which is easy to maintain (due to its particular structure), and thus @@ -266,10 +266,10 @@ corresponding to different constraints on the source files : - The CeCILL-C license is the most permissive one, close to the GNU LGPL license, and applies only on the main library file - CImg.h. - Basically, this license allows to use CImg.h + CImg.h. + Basically, this license allows to use CImg.h in a closed-source product without forcing you to redistribute the entire software source code. Anyway, - if one modifies the CImg.h source file, one has to redistribute + if one modifies the CImg.h source file, one has to redistribute the modified version of the file that must be governed by the same CeCILL-C license. - The CeCILL license applies to all other files @@ -314,7 +314,7 @@ \subsection ssf23 2.3 Why is CImg entirely contained in a single header file ? People are often surprised to see that the complete code of the library is contained in a single (big) C++ header file - CImg.h. + CImg.h. There are good practical and technical reasons to do that. Some arguments are listed below to justify this approach, so (I hope) you won't think this is a awkwardly C++ design of the CImg library :\n diff --git a/html/download.html b/html/download.html index 132ad18d5..d916af7a2 100644 --- a/html/download.html +++ b/html/download.html @@ -40,7 +40,7 @@ It contains all the required files, as well as various examples (which must be compiled), illustrating the use of the library functions and classes.
- + Sources Repository @@ -50,7 +50,7 @@ updates as well. To do this, just type the command : in your favorite console. Nevertheless, you have to know that some code in the source repository is under development and may be experimental, so always test the latest stable archive before complaining ! diff --git a/html/header.html b/html/header.html index 43e625dcb..b04d1d934 100644 --- a/html/header.html +++ b/html/header.html @@ -23,7 +23,7 @@
Logo

- Latest stable version: 2.9.6        Current pre-release: 2.9.7 + Latest stable version: 3.1.6        Current pre-release: 3.2.0


@@ -49,7 +49,7 @@
  • Documentation   Documentation
  • -
  • +
  • Report Issue   Report Issue
  • diff --git a/html/header_doxygen.html b/html/header_doxygen.html index 6737ed90c..42a695d03 100644 --- a/html/header_doxygen.html +++ b/html/header_doxygen.html @@ -26,7 +26,7 @@
    Logo

    - Latest stable version: 2.9.6        Current pre-release: 2.9.7 + Latest stable version: 3.1.6        Current pre-release: 3.2.0


    @@ -52,7 +52,7 @@
  • Documentation   Documentation
  • -
  • +
  • Report Issue   Report Issue
  • diff --git a/html/img/logoCImg0.png b/html/img/logoCImg0.png new file mode 100644 index 0000000000000000000000000000000000000000..d687033a1e1262f5c7cd43d2b64b6d4f8f1c149c GIT binary patch literal 512718 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≷a}l%`amffEVh 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Ø+?awNj^{UL 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 %eX&L^mILK~7 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

      $F;TZP-W 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 literal 0 HcmV?d00001 diff --git a/html/img/logo_header_old.jpg b/html/img/logo_header_old.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bdf9e016df98841751c65cc9cd080459bd9741c8 GIT binary patch literal 73325 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Ø+?awNj^{UL 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 %eX&L^mILK~7 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

        xDaBdS-vIkj4gD4B)^&a=TqWyIH(~ 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

      1. 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 TfBVz_03INNKC*x&mBjzql4sL) literal 0 HcmV?d00001 diff --git a/html/img/postcard77.jpg b/html/img/postcard77.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bac7581e8ee430779e5b801f56c5fc8a848b6cbb GIT binary patch literal 56186 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 Z=6U2&2;2Y^QC!t(&eplSDMNc7|JlLrxSaq1 literal 0 HcmV?d00001 diff --git a/html/img/postcard80.jpg b/html/img/postcard80.jpg new file mode 100644 index 0000000000000000000000000000000000000000..41f0332b44e0813ff995aec0874b407df1694913 GIT binary patch literal 50820 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 Y0!-$*=jNu9{>OV literal 0 HcmV?d00001 diff --git a/html/index.html b/html/index.html index 52e1898af..39518763b 100644 --- a/html/index.html +++ b/html/index.html @@ -4,7 +4,7 @@ - The CImg Library - C++ Template Image Processing Toolkit + The CImg Library - C++ Template Image Processing Library @@ -30,7 +30,7 @@

        The Library is a small and open-source - C++ toolkit for image processing, + C++ library for image processing, designed with these properties in mind :

        @@ -59,7 +59,7 @@ Simplicity
        is lightweight. It is made of a single header file -
        CImg.h + CImg.h that must be included in your C++ source. It defines only four different classes, encapsulated in the namespace cimg_library. It can be compiled using a minimal set of standard C++ and system libraries only.
        @@ -291,7 +291,7 @@ CImg Flyer at work, in your lab or school (available in .PDF or .JPEG formats).
      2. You can report bugs, propose patches or new functionalities, using the - forum.
      3. + forum.
      4. You can write tutorials or parts of the documentation.
      5. @@ -437,13 +437,28 @@
      6. Pregonda / Menorca, from Josep Febrer.
      7. - USA, from Patrick Wanters.
      8. + USA, from Patrick Wauters.
      9. Toulon/France, from Cyril Prissette.
      10. Bochum/Germany, from Andreas Weissenburger.
      11. Portsmouth/USA, from Benjamin Russell.
      12. +
      13. + Angers/France, from Bruno Bianchi.
      14. +
      15. + Makuhari/Japan, from Hiroyuki Hayashi.
      16. +
      17. + Tristan Da Cunha, from Richard Lockwood.
      18. +
      19. + Tyrol/Austria, from Marcel.
      20. +
      21. + Heidelberg/Germany, from Markus.
      22. +
      23. + Jokulsarlon Lagoonl/Iceland, from Patrick Wauters.
      24. +
      25. + Argentina, from Amyspark.
      26. + diff --git a/html/screenshots.html b/html/screenshots.html index bcb54e5b0..8d746c2f4 100644 --- a/html/screenshots.html +++ b/html/screenshots.html @@ -50,7 +50,7 @@ : The main demo sample of the package (1433 lines of code).
        : - CImg_demo.cpp + CImg_demo.cpp

        Contains 26 different real-time animations, as well as a nice selection menu.

        @@ -70,7 +70,7 @@ : A 2d bump-mapping effect (30 lines of code).
        : - CImg_demo.cpp + CImg_demo.cpp

        You can move the light source using the mouse. This sample shows how to handle mouse motion and create an animation in a window. It demonstrates also that the Library is quite fast ! @@ -92,7 +92,7 @@ : Computation of the Hough Transform (95 lines of code).
        : - hough_transform.cpp + hough_transform.cpp

        Illustrate the computation of the Hough transform to detect lines in 2D images. Provide also simple user interface to select and display lines. @@ -108,7 +108,7 @@ : Do a fading between two images (35 lines of code).
        : - fade_images.cpp + fade_images.cpp

        Very small code to perform a funny effect. Also demonstrate how to easily deal with command line arguments.

        @@ -123,7 +123,7 @@ : A functional Mandelbrot fractal explorer (51 lines of code).
        : - CImg_demo.cpp + CImg_demo.cpp

        Show how to use the predefined feature selection function present in the Library.

        @@ -141,7 +141,7 @@ : A simple shoot-em-up game, featuring the people of the Robotvis/Odyssee Lab (180 lines of code).
        : - odykill.cpp + odykill.cpp

        Another demonstration of handling mouse and creating animation for pedagogic purposes.

        @@ -157,7 +157,7 @@ An implementation of an image registration algorithm, with multiscale capability (201 lines of code).
        : - image_registration.cpp + image_registration.cpp

        Compute a motion map between two images, and warp one into the another through a smooth animation.

        @@ -172,7 +172,7 @@ : A mini-painting program (30 lines of code).
        : - CImg_demo.cpp + CImg_demo.cpp

        This is not a replacement to Photoshop, but it already includes a filling algorithm as well as a color selection tool. @@ -191,7 +191,7 @@ : A classical demomaking-effect, called 'rotozoom' (20 lines of code).
        : - CImg_demo.cpp + CImg_demo.cpp

        Smell the old school parfume of the atari/amiga demos.

        @@ -206,7 +206,7 @@ : An animation featuring triangles that are rotating (50 lines of code).
        : - CImg_demo.cpp + CImg_demo.cpp

        Could be a replacement to your classical screen saver.

        @@ -221,7 +221,7 @@ : A demo of image filtering in the Fourier Domain (30 lines of code).
        : - CImg_demo.cpp + CImg_demo.cpp
        Click here to see the video @@ -237,7 +237,7 @@ : An example of real-time 3D rendering.
        : - CImg_demo.cpp + CImg_demo.cpp

        No use of OpenGL or VTK in this example, only pure software functions are used !

        @@ -255,7 +255,7 @@ : An example of the ellipse drawing function, used to bounce an elastic bubble (25 lines of code).
        : - CImg_demo.cpp + CImg_demo.cpp
        Click here to see the video @@ -271,7 +271,7 @@ : A real-time 3D virtual landscape (40 lines of code).
        : - CImg_demo.cpp + CImg_demo.cpp

        The altitude map is based on a 'fractal plasma' generator.

        @@ -289,7 +289,7 @@ : A nice plasma effect with a sinus scroller (70 lines of code).
        : - CImg_demo.cpp + CImg_demo.cpp
        Click here to see the video @@ -305,7 +305,7 @@ : An implementation of the well known Tetris game (130 lines of code).
        : - tetris.cpp + tetris.cpp

        Very small code for a complete version of the Tetris game.

        @@ -323,7 +323,7 @@ : The implementation of the Tschumperlé-Deriche algorithm for image restoration and inpainting (170 lines of code).
        : - pde_TschumperleDeriche2d.cpp + pde_TschumperleDeriche2d.cpp

        See the corresponding publication for more detail on the algorithm. @@ -339,7 +339,7 @@ : A very smart and classical demo effect called 'Shade bobs' (60 lines of code).
        : - CImg_demo.cpp + CImg_demo.cpp
        Click here to see the video @@ -355,7 +355,7 @@ : A nice Blob Editor in only few lines (90 lines of code).
        : - CImg_demo.cpp + CImg_demo.cpp
        Click here to see the video @@ -371,7 +371,7 @@ : 3d Metaballs animation (23 lines of code).
        : - CImg_demo.cpp + CImg_demo.cpp
        Click here to see the video @@ -387,7 +387,7 @@ : A tool to visualize images as surfaces in 3d (100 lines of code).
        : - image_surface.cpp + image_surface.cpp
        Click here to see the video @@ -403,7 +403,7 @@ : A 3d viewer for Diffusion tensor imaging datasets (526 lines of code).
        : - dtmri_view.cpp + dtmri_view.cpp
        Click here to see the video @@ -419,7 +419,7 @@ : Applying the wave equation on an 3d image-mapped surface (55 lines of code).
        : - CImg_demo.cpp + CImg_demo.cpp
        Click here to see the video @@ -435,7 +435,7 @@ : A simple 2d curve editor using spline interpolation (300 lines of code).
        : - curve_editor.cpp + curve_editor.cpp @@ -447,7 +447,7 @@ : A complete and funny game featuring colored balls (121 lines of code).
        : - jawbreaker.cpp + jawbreaker.cpp
        Click here to see the video @@ -463,7 +463,7 @@ : A cool 3d reflection effect, using some 3d object rendering tricks (130 lines of code).
        : - CImg_demo.cpp + CImg_demo.cpp
        Click here to see the video @@ -479,7 +479,7 @@ : A simple word puzzle game (100 lines of code).
        : - CImg_demo.cpp + CImg_demo.cpp diff --git a/plugins/cvMat.h b/plugins/cvMat.h index aba70cfc1..07d5660f8 100644 --- a/plugins/cvMat.h +++ b/plugins/cvMat.h @@ -7,23 +7,16 @@ # conversions for generic image types # ( IPL = Intel Performance Library ) # This file is a part of the CImg Library project. -# ( http://cimg.eu ) +# ( http://cimg.sourceforge.net ) # # Copyright : Alberto Albiol # alalbiol@iteam.upv.es # # How to use : In the main program include: -# OPENCV 2.4.x # #include "cv.h" # #include "highgui.h" # #define cimg_plugin1 "cvMat.h" # #include "CImg.h" -# -# OPENCV 3.x.x -# #include -# #define cimg_plugin1 "cvMat.h" -# #include "CImg.h" - */ #ifndef cimg_plugin_cvMat #define cimg_plugin_cvMat @@ -37,14 +30,14 @@ CImg(const cv::Mat& src):_width(0),_height(0),_depth(0),_spectrum(0),_is_shared( CImg& assign(const cv::Mat & src) { if (src.isContinuous()) { switch (src.depth()) { - // case CV_1U: { // 1-bit int + // case CV_1U: { // 1-bit int. // IplImage *src1 = cvCreateImage(cvGetSize(src),CV_8U,1); // cvConvert(src,src1); // CImg((unsigned char*)src1->imageData,src1->nChannels,src1.cols,src1.rows,1,true). // get_permute_axes("yzcx").move_to(*this); // cvReleaseImage(&src1); // } break; - case CV_8U: // 8-bit unsigned int + case CV_8U: // 8-bit unsigned int. if (src.channels()==1) { CImg((unsigned char*)src.ptr(),src.cols,src.rows,true).move_to(*this); } else { @@ -61,7 +54,7 @@ CImg& assign(const cv::Mat & src) { tmp.move_to(*this); } break; - case CV_8S: // 8-bit signed int + case CV_8S: // 8-bit signed int. if (src.channels()==1) { CImg((char*)src.ptr(),src.cols,src.rows,true).move_to(*this); } else { @@ -78,7 +71,7 @@ CImg& assign(const cv::Mat & src) { tmp.move_to(*this); } break; - case CV_16U: // 16-bit unsigned int + case CV_16U: // 16-bit unsigned int. if (src.channels()==1) { CImg((unsigned short*)src.ptr(),src.cols,src.rows,true).move_to(*this); } else { @@ -95,7 +88,7 @@ CImg& assign(const cv::Mat & src) { tmp.move_to(*this); } break; - case CV_16S: // 16-bit signed int + case CV_16S: // 16-bit signed int. if (src.channels()==1) { CImg((short*)src.ptr(),src.cols,src.rows,true).move_to(*this); } else { @@ -112,7 +105,7 @@ CImg& assign(const cv::Mat & src) { tmp.move_to(*this); } break; - case CV_32S: // 32-bit signed int + case CV_32S: // 32-bit signed int. if (src.channels()==1) { CImg((int*)src.ptr(),src.cols,src.rows,true).move_to(*this); } else { @@ -129,7 +122,7 @@ CImg& assign(const cv::Mat & src) { tmp.move_to(*this); } break; - case CV_32F: // 32-bit float + case CV_32F: // 32-bit float. if (src.channels()==1) { CImg((float*)src.ptr(),src.cols,src.rows,true).move_to(*this); } else { @@ -146,7 +139,7 @@ CImg& assign(const cv::Mat & src) { tmp.move_to(*this); } break; - case CV_64F: // 64-bit double + case CV_64F: // 64-bit double. if (src.channels()==1) { CImg((double*)src.ptr(),src.cols,src.rows,true).move_to(*this); } else { @@ -172,7 +165,7 @@ CImg& assign(const cv::Mat & src) { } else { cv::Size size = src.size(); switch (src.depth()) { - case CV_8U: // 8-bit unsigned int + case CV_8U: // 8-bit unsigned int. if (src.channels()==1) { CImg tmp(src.cols,src.rows); for (int i = 0; i& assign(const cv::Mat & src) { std::vector channels; cv::split(src,channels); for (int c = 0; c plane = tmp.get_shared_channel(src.channels() - 1 - c); + CImg plane = tmp.get_shared_channel(src.channels()-1-c); for (int i = 0; i(i); unsigned char *row_o = plane.data(0,i); @@ -196,7 +189,7 @@ CImg& assign(const cv::Mat & src) { tmp.move_to(*this); } break; - case CV_8S: // 8-bit int + case CV_8S: // 8-bit int. if (src.channels()==1) { CImg tmp(src.cols,src.rows); for (int i = 0; i& assign(const cv::Mat & src) { std::vector channels; cv::split(src,channels); for (int c = 0; c plane = tmp.get_shared_channel(src.channels() - 1 - c); + CImg plane = tmp.get_shared_channel(src.channels()-1-c); for (int i = 0; i(i); char *row_o = plane.data(0,i); @@ -220,7 +213,7 @@ CImg& assign(const cv::Mat & src) { tmp.move_to(*this); } break; - case CV_16S: // 16-bit int + case CV_16S: // 16-bit int. if (src.channels()==1) { CImg tmp(src.cols,src.rows); for (int i = 0; i& assign(const cv::Mat & src) { std::vector channels; cv::split(src,channels); for (int c = 0; c plane = tmp.get_shared_channel(src.channels() - 1 - c); + CImg plane = tmp.get_shared_channel(src.channels()-1-c); for (int i = 0; i(i); short *row_o = plane.data(0,i); @@ -244,7 +237,7 @@ CImg& assign(const cv::Mat & src) { tmp.move_to(*this); } break; - case CV_32F: // 32-bit float + case CV_32F: // 32-bit float.float if (src.channels()==1) { CImg tmp(src.cols,src.rows); for (int i = 0; i& assign(const cv::Mat & src) { std::vector channels; cv::split(src,channels); for (int c = 0; c plane = tmp.get_shared_channel(src.channels() - 1 - c); + CImg plane = tmp.get_shared_channel(src.channels()-1-c); for (int i = 0; i(i); float *row_o = plane.data(0,i); @@ -268,7 +261,7 @@ CImg& assign(const cv::Mat & src) { tmp.move_to(*this); } break; - case CV_64F: // 64-bit double + case CV_64F: // 64-bit double. if (src.channels()==1) { CImg tmp(src.cols,src.rows); for (int i = 0; i& assign(const cv::Mat & src) { std::vector channels; cv::split(src,channels); for (int c = 0; c plane = tmp.get_shared_channel(src.channels() - 1 - c); + CImg plane = tmp.get_shared_channel(src.channels()-1-c); for (int i = 0; i(i); double *row_o = plane.data(0,i); @@ -326,12 +319,19 @@ cv::Mat get_MAT(const unsigned int z=0) const { matType=-1; if (!cimg::strcasecmp(buf.pixel_type(),"unsigned char")) matType = CV_8UC1; + if (!cimg::strcasecmp(buf.pixel_type(),"uint8")) matType = CV_8UC1; if (!cimg::strcasecmp(buf.pixel_type(),"char")) matType = CV_8SC1; + if (!cimg::strcasecmp(buf.pixel_type(),"int8")) matType = CV_8SC1; if (!cimg::strcasecmp(buf.pixel_type(),"unsigned short")) matType = CV_16UC1; + if (!cimg::strcasecmp(buf.pixel_type(),"uint16")) matType = CV_16UC1; if (!cimg::strcasecmp(buf.pixel_type(),"short")) matType = CV_16SC1; + if (!cimg::strcasecmp(buf.pixel_type(),"int16")) matType = CV_16SC1; if (!cimg::strcasecmp(buf.pixel_type(),"int")) matType = CV_32SC1; + if (!cimg::strcasecmp(buf.pixel_type(),"int32")) matType = CV_32SC1; if (!cimg::strcasecmp(buf.pixel_type(),"float")) matType = CV_32FC1; + if (!cimg::strcasecmp(buf.pixel_type(),"float32")) matType = CV_32FC1; if (!cimg::strcasecmp(buf.pixel_type(),"double")) matType = CV_64FC1; + if (!cimg::strcasecmp(buf.pixel_type(),"float64")) matType = CV_64FC1; if (matType<0) throw CImgInstanceException(_cimg_instance "get_MAT() : pixel type '%s' is not supported.", @@ -340,7 +340,7 @@ cv::Mat get_MAT(const unsigned int z=0) const { std::vector channels(nchannels); if (nchannels>1) { for (int c = 0; c(buf.data() + rows*cols*(nchannels - 1 - c))); + channels[c] = cv::Mat(rows,cols,matType,const_cast(buf.data()+rows*cols*(nchannels-1-c))); } // for channels cv::merge(channels,out); } else out = cv::Mat(rows,cols,matType,const_cast(buf.data())).clone(); diff --git a/plugins/tiff_stream.h b/plugins/tiff_stream.h index 1a47ada35..a72e11419 100644 --- a/plugins/tiff_stream.h +++ b/plugins/tiff_stream.h @@ -159,7 +159,7 @@ CImg& load_tiff(std::istream* tiffInStream, TIFFSetDirectory(tif,0); CImg frame; for (unsigned int l = nfirst_frame; l<=nlast_frame; l+=nstep_frame) { - frame._load_tiff(tif,l,0,0); + frame._load_tiff(tif,l,0,0,0); if (l==nfirst_frame) assign(frame._width,frame._height,1 + (nlast_frame - nfirst_frame)/nstep_frame,frame._spectrum); if (frame._width>_width || frame._height>_height || frame._spectrum>_spectrum) diff --git a/resources/cimg_buildpackage b/resources/cimg_buildpackage index 0372e877c..f83d80566 100755 --- a/resources/cimg_buildpackage +++ b/resources/cimg_buildpackage @@ -141,7 +141,7 @@ echo -e "\n** Log generated by 'doxygen' **\n\n">>$LOG_FILE echo " - Build reference documentation in PDF format." cd $SRC_DIR/html/latex -gmic it structcimg__library_1_1CImg.tex replace_str \"operator%\",\"operator\\\\%\" ot structcimg__library_1_1CImg.tex +# gmic it structcimg__library_1_1CImg.tex replace_str \"operator%\",\"operator\\\\%\" ot structcimg__library_1_1CImg.tex echo -e "\n** Log generated by 'latex' **\n\n">>$LOG_FILE make>>$LOG_FILE 2>&1 cp -f refman.pdf ../CImg_reference.pdf @@ -152,6 +152,8 @@ rm -rf ../latex echo " - Commit on GIT repository." cd $SRC_DIR if [ "$1" == "final" ]; then + git push --delete origin v.$SVERSION + git pull git tag -d v.$SVERSION git tag v.$SVERSION git commit -m "Final release "${SVERSION} >>$LOG_FILE 2>&1 @@ -175,12 +177,12 @@ mv $ZIP_FILE $BASE_DIR # Copy files to CImg server. cd $BASE_DIR if [ "$1" == "final" ]; then - lftp ftp://$GMIC_LOGIN:$GMIC_PASSWD@$GMIC_FTP -e "put -O /www/CImg/files/ ${ZIP_FILE}; quit"; + lftp sftp://$GMIC_LOGIN:@ovh -e "put -O /home/"$GMIC_LOGIN"/www/CImg/files/ ${ZIP_FILE}; quit"; fi -lftp ftp://$GMIC_LOGIN:$GMIC_PASSWD@$GMIC_FTP -e "put -O /www/CImg/files/ ${ZIP_FILE} -o CImg_latest.zip; quit" +lftp sftp://$GMIC_LOGIN:@ovh -e "put -O /home/"$GMIC_LOGIN"/www/CImg/files/ ${ZIP_FILE} -o CImg_latest.zip; quit" cd $SRC_DIR/html/ -lftp ftp://$GMIC_LOGIN:$GMIC_PASSWD@$GMIC_FTP -e "mirror -RL . /www/CImg/ ; quit" +lftp sftp://$GMIC_LOGIN:@ovh -e "mirror -RL . /home/"$GMIC_LOGIN"/www/CImg/ ; quit" # End of build script echo -e " - All done, you should look at the LOG file '$LOG_FILE'.\n" diff --git a/resources/cimg_ftp b/resources/cimg_ftp index 9879f1dc2..af37ad0ee 100755 --- a/resources/cimg_ftp +++ b/resources/cimg_ftp @@ -1,4 +1,4 @@ -#!/usr/bin/gmic +#!/usr/bin/env gmic skip "${1=}" @@ -19,21 +19,22 @@ pwd={`" # Upload file or directory. if "s = ['$1']; "$is_pwd" && (s==0 || s=='.')" # Synchronize current directory e[] "Synchronize current directory '"${pwd}"' with 'SERVER"${pwd}"'.\n" - com="lftp ftp://"$GMIC_LOGIN":"$GMIC_PASSWD"@"$GMIC_FTP" -e \"mirror -RL . /www/CImg"${pwd}" ; quit\"" + com="lftp sftp://"$GMIC_LOGIN":@ovh -e \"mirror -RL . /home/"$GMIC_LOGIN"/www/CImg"${pwd}" ; quit\"" x $com elif $is_pwd" && isdir(['"$1"'])" # Synchronize specified directory e[] "Synchronize directory '$1' with 'SERVER"${pwd}"$1'.\n" - com="lftp ftp://"$GMIC_LOGIN":"$GMIC_PASSWD"@"$GMIC_FTP" -e \"mirror -RL \\\"$1\\\" \\\"/www/CImg"${pwd}"$1\\\" ; quit\"" + com="lftp sftp://"$GMIC_LOGIN":@ovh -e \"mirror -RL \\\"$1\\\" \\\"/home/"$GMIC_LOGIN"/www/CImg"${pwd}"$1\\\" ; quit\"" x $com elif isfile(['"$1"']) # Upload single file if !$is_pwd pwd="/" fi e[] "Upload file '$1' to 'SERVER"${pwd}"'.\n" - com="lftp ftp://"$GMIC_LOGIN":"$GMIC_PASSWD"@"$GMIC_FTP" -e \"put -O \\\"/www/CImg"${pwd}"\\\" \\\"$1\\\"; quit\"" + com="lftp sftp://"$GMIC_LOGIN":@ovh -e \"put -O \\\"/home/"$GMIC_LOGIN"/www/CImg"${pwd}"\\\" \\\"$1\\\"; quit\"" x $com fi +rm # Local Variables: # mode: sh

        K2KQJ0t(rULRbpnk=luFc-} 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 HEL2Y8J*??c%#Ko0i^jfr_<_1j% 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

    }s3VLJhY8 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%0AeZz5hY0n-^O(&mElg*f9vMKVp6!~0+ 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�+Zv2_c)qJ_PL_H+ZS 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≶ws|{@j7;lSJkz3D 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ƆNWFrm zNDg7+BK=iUxcLyc?)(!<-{fQWSNztr0TZwe$=gd1goi0uVti=+lgR(( zhwqMTz;`U_KS|_!()u4P3j7}~>ODVvr=moS2UvHn{wF{Dk69%6*q(YG{gKF@yu&$+ zvFyX(Jn8r7DBlCyI{b^f`jTe7UVoB9aH2V@hK&YF2ENl|#dEsb(}CX%{$usg8--3S2$DbnRKJ-p>Aw zPU1~BSqX*gZ9Q5zblsyI4}^Kwd>ct0=2yb~4icTTK(C54=T}uYY+8?$T`-U$w9!kq zIEdUhRvI=gIK#KZy1mPEF4nl-{d7@bSup?Uvr7Fa ztS{p8sIM!@Vy}_#eS@2Of} z5v6l&+>%%B28VT$!1Po`(X<;si{&AFc~M?cG#-MYp?>`o+ht@?=sT4Ka+$dJq@ z>aWl!=?|=FlcjSB^((CD!45%4#ahxY9znWeaJFaC^K3_5Ya+IueoyCYTd+?K$I=?v zDT!T95szuLMvU8@cR}mQ!pY6M5+`MBaan$BEPrslx7X~XHdI5oP#s9Er4I~XB$#Dr zj}Cue1I9ZqBN>g32!5=Xim+IuB*v?YAt?(L3^iwRny#)vp zpb}G4x+srNu$?bkyNXxT?8L?Bn|d2ujQK3C3swB$|1pQQJAY{^HL_GZa4!jn5ug zvUSVn8(3%Czp90GtN&{X33h? z{!9VCZUJ`do*N=YE7uZ!h}$TUUO%A>*&c7rfiXzdE{wx6D+jvg^AW?ThFX2!oj3(44YU z-x=+}rUXW$DR}nj_r$vqm-Fpai0=+Em$b@hfa+a6V%GX1K{B&SZqketera}lL3GUBa7ujHt~`qT{IsnF>`XIOKJ-^$cT{i&m9zt4lNXpj2FuiKdkcd} z!iT2ltfwN-(S=oQk1qep%k(^{^0epAb{DVSy}YYCYl2f^Q9$m0fY0~jgKpB2eiL&Z zFL&qQ!ii2Ht$z2lOX*oV1f!WnyLNzqx&d>VAYRY~?!6_Zj%A4F{=<~+*|(DcyU&G+ zrL}ron7;>rxok+SlB&JPmJ_8feS!nB0*bNSSv!6tV>oY?@Z1s~Jp|Q1Zp89bI>ZfZ z4|A$_FZmV=^nG0G`vwPXTF2jji{I7Zu6`@NDQW4Rw8kS5FGf!hEL1u0(QK4Sx?VKTiffqTY_>hj4&n2_2k7W6x zk209#=zkyk$5Aif(S!ZMv9&N%c7J}ne^;@F0Sw@Gl=i>fBoW@R+W+n!n1KIcwc!8J z7v?Xo{=?P&&-U@&LsA6Hn%-cNuc9{kfnFKI4AY;}M#*sHB5s@SCrueW@}n*aYv=rF z?VmvGM9hBxvv=1{|MWK*oQ0d@QhWrIMgg4XA2)%z0FVp@#S7IQ-^4<1AV$f61pIw% zsC<-DY*Iv+Wol#7En$tCk-bU13>dp}H~UYp@9Kn`RL59|gZyd3I#WMDvWQ>h#&fV8 z*JNK1XJ3PN^@Oq`;ef+X8O$UgFEF54ruUjaGOvX4?i=)(T*5(-`2#fdxg zvks_r?@Ma2VuNPlRGSdhVF!Oqn(GMc$$QcRHkeHPe;xb-Bn8QMYYxWXr6?J2gJ4Ms zqrxdsqxnc5vi1%XyY)SIPr_<4h!FHq-u(o@Cf=t0sYn&!C9RY%zuoZhNp2!a%HCzmqtDZ&DiFg zodi4#XRs-p(SP+Wu`HMwL}2l2j2lXSyn^DV9n2(saB8yn(|x1gyRyBbuiVA+_`+`0 zk#48%N!G*SoJ!I%k@g+gpv^oh$(1Cc)7hwrEVmA1yI__+>3qg`>CJ>%HaRV2C>Mk~ zGYFNbJVtZb{Yz~U-Y+W1koP;?!>S7_Hz7!Nn1eN{M+V529K2_LvG_gGY2s=+tW3qz6Kw6}{vF zC^B}(7B^J)rMGQHhqowK1%( zlBXTyA<@+v{(=pU$B*I1u-PNev#Hkcy`zBAB&N!=_LIw9EW56I`0Y54V`Xe#4WOc-GFBDPV(&8J z(Mh<`hH)2#aY+&A>lJorh3VV#z|ZA(Fkr)#Pr_K&!d1qI`kJckN-R;+j3(-0AoO_! z8)0g)=?fso=4R~fl#D%L#R;ETnGl`8j1mIlwO0b0D|D5~8=f zGd3St4Bw>5wXajYjNk5P!rt{9x%JJD5mK7>l~d=kiNf%DuFBz>(E_*?rp(Qn(eD)gyWo2*Ox zgHLV3Ju2VG8qrqhi}GnskK7|*4%${or$$BspWBAyOy(qecB<78+E})Xb(#DAOZ&gkeAu z$cmPC=IL2~z3%~XuX@(}_-87GMn!=v?_Q(s9t)!qR_1KRxx(4-Prb}>8vmQ%3U47o z1lv`j34T(l-_IpYhYJOC0|)Dfe7#4rVM{|r#^fWSC_8tCn{<0r$t(} z7jK3Q6sZpQ}oTif6m!VWtdHhIP@r-p`W87M(&q##xe}t zW}Rk^{(;kDDkih0;lq475xdd37hX<<(Zpz+fZ@}Sp}lt18}l?Wnv^TDYu5c#dZp{0 z{wfrRn951(oW&H(1;cx-rCLPbjyl2$V-OmiHZ7-%gC4s^9Kz@&gbBe4m=S^wK&rA( zEL^0u2YxTiozS$;@Z6`nmmz~3!Bla`!aA{9An+ci1o>~W3fw*#^ z3pb4{m#`%Wt+})+9+%ZCpcj6?RhWSUV{Em3XbFt6Cbp; zRpdInbN;wO=RD<;5Lt+RE_)^riN{O)7oOFcNs(%9%^zN4W?g|C#DKqh`ychaU<;!+h90E3zXv0$%*2j zj}=dMZhKhsh+Tp;wZiIo+>`QIhxnbbfJa&%EO0oD*u4R8W96)Iw+fe0=CcG`8Ho_k z)%U4oisEsLm1`lh?oPRW`>XQ#@lEa@gx&JzN)-K~MYkST2*U4R^mT}eZT{c|#t~9m z+Q#F})QIe)^bSJMJ_BO1NulS9!N;K?JJrlz{0GMT0ud9oPRhN^J=RO7fxkFGsH;&v zc*ia}bkp#j*CeONeR0xx4v1_oN+(&E)M;hBY?}7;6=V?A91H zGuSR}I@JM%*MyH~h*O-@%O%b?qjd!&MCx|CPp#Q~F<%yY9y8mt-lk(rszCF6UkTNrAtboCN;q_0ClGMnpT$q%_xa5T}Gc-?uji`worfsL(X`9-| zWD;rhX0&5wFpP%cbyIs-QJEq10cZjAs?FqXSF4NEjw_UUj(+l9`rO)dF=nHT9pdId zPO%Ik1)G{zUuK{tuxzK#ZEB}c-Zlg^fCO1hOoO&vcQF`j z`K%cUih>oji(I#>@Fs^7mDNXpgE;_>U)NJ){QjM+;gk(i5_8p%aH zO=8W-L<3T)hu^#f^<_|s;hcA7gbwgcL#pBeA%9>b5jtA}i6~_#%H)Ql?};)g5)!3% zd#gl~H8fdr<*Jh>voN&-E4d~Xj9Dcf*qU_U49MD1m-dN&0ZQljAQz;wYQt4^Gg(&w zmMV}EgG7uroH@}RRL|R>pMx-Ty@Sr9*;QP?AhL>tYnS5%PX@WL6`HrtSbXAW7|>-_a2_idxk)(rim z{3-(dlOXo3$bb~#C61Yc6sBV_$Fx7euN^)+Wps`-XM|z4A z?oyboN_Y1}=ra%2j0d55kTRg-Fh|v9*LJ*5O3^MJeE)*r`#&1;1Y+Td7dR!(= zJXg;d7avO(-NE)I(#3+A@FLXDVxsaVE@TnB1&dj@0bP-#52LF-eB|2JDvU-sJvw*j z8O{+ocOyxZx!ufpAHh=2;Uij_s}P6sO#Eg{(Qcz~>0LxJhv(_7imXJLPkVs0vsPTJ za`#dUlR>>IUe!jkI+01dl!kZV`NS%Bl(1-Fuz=@g25MDRh$2T+j=I#Wfg84rqyonu zIvJqqu``nyb_1Ijrd4(Afy-(uCN&>Qs1L6b_;hZMacxP%Q1qMMec} zNai&Jn8ympNTe3*&CtpNOjzOVI$8it+KQ-PCBrKqR;0E#R=?^ybhWY-Ajh3ROr;+( z4#@~9JFOW|Mue&Ut$`+r)o7}LG1Y-^Ydi|#M(L0Syq zkcm8yaU0kR7HHZzCfTrDHqy@cGyDiLQgd8(R$bB??KQ-NjXUI1uDVI77kM^MDD}pb z1kgl=E;RXG{VW!9Qc~2|9}Q>T0Noy(&Mp9gf;Q&Pj=UR}(D-+f_ZMa5Q2_Oeiel82XDNYT5;QJ;A9K`6e^kt7I@qdC zz~)uVXT+^UgFkdq@H)5(a8wmQUhDA#^zN%8z&&NVjs3(jUagju1#7f^|6Ss>u@}I6 zolvSM!35+DRh|p~x`*B`JwY#2hly4YVmsD4+_4u)-S0bd_awus5#dQY+p$7RlEtSHZ%I(#26vmm<{|BDLT8bT9onpPl{h_ApNUJ}zzq z9Zh=8A6Z#_jXz|MMRaODH~&bt{IH!d7*P*=c{FCbcx0TB?CF!*Mf~0jRM_9V$~z~X z!HlcuP3M>u-Qwu&iTP#I)97cZ{rQpYRhRE;MW0}G(2nbUKL4zx!;dh#m)&0%#aMJY z8*oG_=7f|_hc8XdUpn7(U$)=k^yl|33&&_xwnfCQe|ZWkf1%8aqnrl9BOL}3WI!us zulc+;=hOP(gPJ?gSeT0fJkvxC+8j+YhtuoGw_S9sF(-GcM~|REjMz)g59cv90CMqWnxn_A$HP6 z=0x#F=ErI0p#mGg20$yU0~rL2yphT79VG>b@)KNTwfXi)Bu6iH^%oU%sq&XW3-pNrqEX=NvI+)Z~g8>XDu8#Y$0;lMa zF0C~`rpR;F2mReUbUzaIOIBiI5C_hL`DdGCz8hxm7xbuKd=d*sIw!&_r_b-@m>Pw) z(+c-dT(T_Vg^O8KxRN}o814XFWq*#NQ7gd>qmfr3s`m>ZBxbs6MYlFu42(tTgh)08 z1R2{ZtA`2sXh#LvdfQAVFrTeW$332QvrsI{>K3-`q!K8p))dm)ZSwDx=`0e*!ly8? z9I|`L4Mw$d&1%EKu-{@pkENWk6OqtZD|vx9jndyODu|E7I!7VDOT0}6OSt8G6Yc^l zi6!a8!!@xJlN2oIX=zQu+=x09GrnCZpQPuI>#?O!x?d25&8JK!=do~7ZOxtMg!Fk~ zMtTf4=u^bG8F&=1;KRcO=%7O4CybqzFj>ZbJvbRtBeUqQy6M_wm?Vm#;Woq7Af8>R z0~TymUyR|BYd>ItkvK^W+@Aqr>O$XPby#F@=ZIj4Ws_(-MF|bMYfeaZFp;-fEp4D6 z{KlV*c&IW7MqBZOwk<^C9d_Ol_t5DRpFP)Eg}s8u_bMb!U2Lh2#l@%wZ*FP7A!G`X zr{>jMGP$zjX~Yh3NtGJ{%Fr*JJPXoEMr^2u=QM+Hr zQQfw%ZUe4y39`)o^hCIB5!#*?5kP zd(S`+JZpej6ZA0^G(Uxxtqy@TQR@gi(J+YAjnuGVW)qG#ZJ z_t(9vV*7~1WzSrMDB)TgAYW4$Hfo_s%9Sd4j%@N+Qh<}K4geAjZb-|67&tjK?H!Qg zv_#=M#-+mmX0I;#fe796#kL6Tgarr*Q%#cN8|sTTUImzjPK!ZZ>&uEx*1QDWuf$5E z#0@C5OoLt>@UcwIQ6HlA)qf!g#aO2XFJ=%5+0=a4^?o}wAhAv7Wpy=%i|Z%y+QZ%p zx2nuBlW3)?3?~Yn)C!N%75%jlzKScx>5lQ?ql~~!fYGi2_*e-_Bu?L^j+_+1U&qVu zyJ&$0p?0t&JBj`V7(iP1y&gXB7O&fD8EBUvTWp-bRL= z36GVY72KpzMj&b57FaT0ID=!1NYoG&l}L<~Kqxg_xF5L{=E<@IF}Ka z?d6SBquo~RRw#}i8k682j3Q;VtMIoIvVg46Bqo70q+Nido`8U>e2d)1&8geUzz-i7 z2`8+fW!ESneI)n+^2vA&>NS8gGU|jb2`&&j5*l)FAFMfU!3nhi)7QXgJ)-8Wz|&J$ zF?N%URpQ9vFt8^S69^h$)Ue*Vh8p7IAyblyM#O1+(TjH5g<}a9qpEw_AU}}{L}e^0 zs300o7wXZ^z<~#GxV>!?wD{Tb_<3sU%{44hYi8iesB~HRQUDJMKK>bd7Vj^?DE!TR zib3`Qk@8zBN%ktyUfthvg+UO=nu2C7&QYAOaRN0&a-z-jpdm=apkLI?xZjvb=m3~@ z)8e*GWjY9h32h-V;y(k<4hjqx_2W^~C){pjG`3%fE0-RP+a+sI=>yz&TLZGuE6~$& zO8-j6Di;oubRV|Q489|^vg*n9?rr{mej!9pD@Ki}11t(Ylvrz$kxza?oQM#Njhwa8 zD9}iiVO_!IT<8rdw8?=y>fA6)=`i5V+2rw{F(iX-mA6?JnSQ*J0te2iXEAPv+pwyruq@a# zM)=;A!a_EnPHc{Jq3YWX9VKF(J*D>VuoF+~aBt;rAy}H;W}_ahK{|ELbq!+HVJqkz zZWes_f;rpA^W4IhhhLerHGA^ z6jS^~o%9^}vv2ZUj7po&x)iV9^h$S5MKc>_-K=5%rTBKHdhJb*R@C_MCg=5d!aqCZ zL3I|VNdoQL(cfzf%)WZw%>4szsCiO_T_ejmk4(TMgp{9}wxM|Jsp*duc|CP9YU1mP z%fq`t9<(h#8ufIMNgZaFRZL9Ae;K)SDF0R?>F>VK+cn_|FO5POv>6ZHox)LtF3`O& zDHVO{I0a7&ZlCpI=Qp^lQ>ss;m7$Nihs&Y?SqLo>+;64mssUg(odWGtVo|-c)w+mW z;{`5{1_gjP2~Zk8D~PY~MD~fqnkQ(sl@MEAR3NhCws)qtm{GG*F0ye}J+Pv^ei_~K z!&U_-DgZmXia}200Gadr;3tciud5c7roQ}oz|GXCYXVE6aXKytZcw`rIQnV7nkNrU zr^vH3!rO`vCxKKbg&ym2UyLMMcNa!kJg_4Uw*(#K*a?q0x9VA*3=Bto@ z(4F@u%{?)w3->)xMjfO=ccpxo`fk8*D!6M59ctEF$GVvs_0V^GeGMb~ z#9pQT2dVjR&59~aJ*%;dwJbS#u}=|T**!Jnjc!!2Mnxh6fB=Nb7?TF>Ac=~i3!=~Z zro~np*+JiCh?lYHdiDcF70roL2;k$yBKeA)GoxoyIr+OUi~@8Kf<_i7D0G<^`8@!x zbRMn^3rn2-8Zc?yNW(M^Ycf<;IY=G!jNe z?0jja4z}wY(bC0h(X75^d_!f!klUoo=8t&5apX65oB&vJbt8bI*Gig2UAe-32LY)? zwf*-z$M?+ctDldOA0KBOPVc|m<=+VY1B{J&Dhl!)y$N&7zW9F0e~*b=UFG@j?fp0A z^$!pqbMp^CPWbi@0&A2C9XUjP6A literal 73325 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