{"id":25738335,"url":"https://github.com/kunitoki/waterspout","last_synced_at":"2025-05-08T03:57:51.640Z","repository":{"id":11927512,"uuid":"14495570","full_name":"kunitoki/waterspout","owner":"kunitoki","description":"simd abstraction library especially creafted for audio/image manipulation","archived":false,"fork":false,"pushed_at":"2015-12-04T16:06:46.000Z","size":1004,"stargazers_count":13,"open_issues_count":0,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-05-08T03:57:44.431Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kunitoki.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-11-18T15:01:06.000Z","updated_at":"2023-11-17T02:00:36.000Z","dependencies_parsed_at":"2022-09-24T07:21:11.546Z","dependency_job_id":null,"html_url":"https://github.com/kunitoki/waterspout","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kunitoki%2Fwaterspout","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kunitoki%2Fwaterspout/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kunitoki%2Fwaterspout/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kunitoki%2Fwaterspout/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kunitoki","download_url":"https://codeload.github.com/kunitoki/waterspout/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252996333,"owners_count":21837621,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-02-26T07:30:00.515Z","updated_at":"2025-05-08T03:57:51.615Z","avatar_url":"https://github.com/kunitoki.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"![ScreenShot](https://raw.github.com/kunitoki/waterspout/master/waterspout.png)\n\nwaterspout\n==========\n\n[![Build Status](https://travis-ci.org/kunitoki/waterspout.svg?branch=master)](https://travis-ci.org/kunitoki/waterspout)\n[![Windows Status](https://ci.appveyor.com/api/projects/status/github/kunitoki/waterspout?branch=master\u0026svg=true)](https://ci.appveyor.com/project/kunitoki/waterspout)\n\nWaterspout is a SIMD abstraction library wrapper especially crafted for\naudio/image manipulation.\n\nThis library is born with the purpose of helping in optimization when developing\naudio and imaging applications where you process a lot of data and want to make\nusage of the streaming instructions of the newer cpu: the purpose is to abstract\nas much as possible from the underlying implementation and leave the developer\nwith a single, smooth and slick lightweight interface to process buffers (copy,\nclear, scale, apply panning, dry/wet processing, filtering and so on) as faster\nas possible.\n\nWaterspout will check the CPU and choose the best streaming instruction\nset suited for that particular run of the application. It's also possible to\nopt-in or out at compile time which kind of instructions to enable, and with\nthe software FPU fallback it's possible to run the same code on different and\neven older CPUs.\n\n\nStrong points\n-------------\n  * simple and clear\n  * accurate\n  * fast\n  * automatically detect the best configuration based on the running CPU features\n  * drop in include in your project (2 files only needed to be included)\n  * no dependencies on third party libraries\n  * extensive unit testing for all operations\n\n\nUsage\n-----\n\n```C++\n#include \u003cwaterspout.h\u003e\n\nint main(int argc, char* argv[])\n{\n  waterspout::math m;\n  waterspout::float_buffer bufferA(100), bufferB(100);\n\n  for (int i = 0; i \u003c bufferA.size(); ++i)\n  {\n    bufferA[i] = i / 100.0f;\n  }\n\n  m-\u003eclear_buffer_float(bufferB.data(), 100);\n  \n  m-\u003ecopy_buffer_float(bufferA.data(), bufferB.data(), 100);\n}\n```\n\nReferences\n----------\n\nGeneral:\n  * http://software.intel.com/sites/products/documentation/studio/composer/en-us/2011Update/compiler_c/intref_cls/common/intref_bk_intrinsics.htm\n  * http://softpixel.com/~cwright/programming/simd/index.php\n\nMMX:\n  * http://msdn.microsoft.com/it-it/library/ccky3awe(v=vs.90).aspx\n  * http://en.wikipedia.org/wiki/MMX_(instruction_set)\n  \nSSE:\n  * http://msdn.microsoft.com/it-it/library/t467de55(v=vs.90).aspx\n  * http://en.wikipedia.org/wiki/Streaming_SIMD_Extensions\n\nSSE2:\n  * http://msdn.microsoft.com/it-it/library/kcwz153a(v=vs.90).aspx\n  * http://en.wikipedia.org/wiki/SSE2\n\nSSE3:\n  * http://software.intel.com/sites/products/documentation/studio/composer/en-us/2011Update/compiler_c/intref_cls/common/intref_sse3_overview.htm\n  * http://en.wikipedia.org/wiki/SSE3\n\nSSSE3:\n  * http://en.wikipedia.org/wiki/SSSE3\n\nSSE4 (SSE41 - SSE42 - SSE4A):\n  * http://msdn.microsoft.com/it-it/library/bb892950(v=vs.90).aspx\n  * http://msdn.microsoft.com/it-it/library/bb892945(v=vs.90).aspx\n  * http://en.wikipedia.org/wiki/SSE4\n\nAVX:\n  * http://en.wikipedia.org/wiki/Advanced_Vector_Extensions\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkunitoki%2Fwaterspout","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkunitoki%2Fwaterspout","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkunitoki%2Fwaterspout/lists"}