librapid
GLM
librapid | GLM | |
---|---|---|
18 | 36 | |
153 | 8,729 | |
0.7% | 1.8% | |
9.3 | 8.9 | |
10 days ago | 1 day ago | |
C++ | C++ | |
MIT License | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
librapid
-
Huge LibRapid Update -- New Features, Performance Improvements and Bug Fixes
In addition to all of these changes, I used LibRapid and Surge to write a simple Flappy Bird genetic AI as a proof of concept. The code runs well on all platforms and can simulate over 20,000 birds without too much trouble. If you want to check it out, here's the GitHub page: https://github.com/Pencilcaseman/FlappyBirdAI
-
LibRapid's Most Requested Feature -- OpenCL Support
LibRapid: https://github.com/LibRapid/librapid Documentation: https://librapid.readthedocs.io/en/latest/
-
My high-performance multidimensional array library
tl;dr
I'm developing an incredibly fast library for arrays and mathematics, and I've implemented a few new features and made some improvements. I'd love for you to check it out!
Links:
GitHub: https://github.com/LibRapid/librapid/
Documentation: https://librapid.readthedocs.io/en/latest/
Discord: https://discord.com/invite/cGxTFTgCAC
Hey everyone!
I am the lead developer of LibRapid (https://github.com/LibRapid/librapid/), a high-performance C++ library for array manipulation and mathematics. I've been working hard to bring you some significant updates and improvements to the library, and I'm excited to share them with you! These changes will make it even easier for you to use LibRapid in your projects and enable you to do even more with it.
Here's a rundown of the most notable changes:
CUDA improvements: We've fixed several bugs and made performance enhancements for the CUDA implementation.
Expanded support for BLAS libraries: LibRapid now has greater support for BLAS libraries, including Intel's MKL.
Test suite and documentation updates: We've updated our test suite and overhauled the documentation for clarity and ease of use.
Matrix Transposition: The library now supports matrix transposition with highly optimised, architecture-specific SIMD implementations and generic implementations for non-trivial types.
New math utility functions: We've added various new utility functions for complex numbers, multi-precision arithmetic, and more.
Matrix transposition and SIMD: LibRapid now supports matrix transposition and SIMD matrix transpose for SSE and AVX2, improving performance and memory alignment.
Random number generation: We've started implementing a new random number generation library.
Fast Fourier Transforms: LibRapid now supports fast Fourier transforms on 1D arrays, with more features coming soon! (We're using FFTW, so you can be sure you are getting the best possible performance)
Array BLAS operations: We're implementing BLAS functions that operate on our high-level array type, allowing you to access the high-performace, specialised routines without the tedious interface. (Many operations already use BLAS functions internally)
You can find more detailed information about the library and example code and usage guides in the documentation (https://librapid.readthedocs.io/en/latest/).
We're always looking for feedback and contributions, so if you're interested in using LibRapid or helping out, please feel free to create a pull request or contact us via our Discord Server (https://discord.com/invite/cGxTFTgCAC). I'm putting in a lot of effort to enhance LibRapid and would greatly appreciate any sponsorships to support my work. If you or your organisation is interested in sponsoring LibRapid, please feel free to reach out to me to discuss your ideas.
We hope you enjoy the latest updates to LibRapid, and look forward to seeing what you build with it!
-
LibRapid Update: Exciting New Features, Optimizations, and Improvements!
I am the lead developer of LibRapid, a high-performance C++ library for array manipulation and mathematics. I've been working hard to bring you some significant updates and improvements to the library, and I'm excited to share them with you! These changes will make it even easier for you to use LibRapid in your projects and enable you to do even more with it.
-
LibRapid for C++ -- February Update
LibRapid is a high-performance C++ library focusing primarily on linear algebra operations, though also supporting a wide range of classes, functions and utilities such as vectors, complex numbers and more.
- Make std::vector 5x Faster with LibRapid
-
Writing Faster, Shorter Code with LibRapid
LibRapid GitHub Repository
- Star History
- LibRapid -- High Performance Arrays for C++
-
what personal project of yours are you most proud of ?
Probably LibRapid, which is my high-performance array library for C++. Nothing huge but I'm quite proud of the features it currently implements (given time restrictions and rewrites) and it is, in many cases, faster than things like Eigen and XTensor :)
GLM
- Release of GLM 1.0.0
- C++23: The Next C++ Standard
-
What files from glm's github do I need to add to my emscripten project?
I am a greenhorn at graphics programming. I just made an app in OpenGL with C++ that I now need to change over to a browser app with WebGL. WebGL looks pretty cool but since my app does a lot of calculations I assumed I should keep the heavier calculating parts in C++ with emscripten ( which I am also just learning ). So looking at it, it just looks like glm is the only library I seriously need for my c++ code and that seems pretty cool because it is a header only app it says. But in the github there are a lot of folders and files so I am not sure which are indispensable or not. Any advice?
-
What is a file with the .i.hh extension such as myfile.i.hh used for in a C++ project?
GLM does it quite well, it has core includes then a detail folder with all the inl files that get added. https://github.com/g-truc/glm
- [Opengl] Aide: compilation et installation de GLFW
-
Porting to metal?
I once ported an OpenGL code base over to Metal. For me, it was essential to do as much code sharing as possible. Because I was using the GLM library in that code base and generally found that library very useful I wanted to know whether I can use GLM with Metal. I had to do some research but it turned out it works really well, see here
- Which is the best way to work with matrices and linear algebra using c++?
-
Best C++ Game Framework
I would also recommend GLM
- PocketPy: A Lightweight(~5000 LOC) Python Implementation in C++17
-
Learning DirectX 12 in 2023
Alongside MiniEngine, you’ll want to look into the DirectX Toolkit. This is a set of utilities by Microsoft that simplify graphics and game development. It contains libraries like DirectXMesh for parsing and optimizing meshes for DX12, or DirectXMath which handles 3D math operations like the OpenGL library glm. It also has utilities for gamepad input or sprite fonts. You can see a list of the headers here to get an idea of the features. You’ll definitely want to include this in your project if you don’t want to think about a lot of these solved problems (and don’t have to worry about cross-platform support).
What are some alternatives?
hypergrep - Recursively search directories for a regex pattern
Eigen
borealis - Hardware accelerated, controller and TV oriented UI library for PC and Nintendo Switch (libnx)
DirectXMath - DirectXMath is an all inline SIMD C++ linear algebra library for use in games and graphics apps
tensorstore - Library for reading and writing large multi-dimensional arrays.
linmath.h - a lean linear math library, aimed at graphics programming. Supports vec3, vec4, mat4x4 and quaternions
BenchmarksCPP - A Suite of C++ Benchmarks for LibRapid
cglm - 📽 Highly Optimized 2D / 3D Graphics Math (glm) for C
pocketfft - FFT implementation based on FFTPack, but with several improvements, cloned from
OpenBLAS - OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.
mandelbrot - A Mandelbrot Explorer implementation. I use this program to generate all of my avatars.
blaze