// A simple quickref for Eigen. Add anything that's missing. | |
// Main author: Keir Mierle | |
#include <Eigen/Dense> | |
Matrix<double, 3, 3> A; // Fixed rows and cols. Same as Matrix3d. | |
Matrix<double, 3, Dynamic> B; // Fixed rows, dynamic cols. | |
Matrix<double, Dynamic, Dynamic> C; // Full dynamic. Same as MatrixXd. | |
Matrix<double, 3, 3, RowMajor> E; // Row major; default is column-major. | |
Matrix3f P, Q, R; // 3x3 float matrix. |
/* | |
This software is released under the MIT license: | |
Permission is hereby granted, free of charge, to any person obtaining a copy of | |
this software and associated documentation files (the "Software"), to deal in | |
the Software without restriction, including without limitation the rights to | |
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of | |
the Software, and to permit persons to whom the Software is furnished to do so, | |
subject to the following conditions: | |
The above copyright notice and this permission notice shall be included in all | |
copies or substantial portions of the Software. |
// This is a GLSL implementation of | |
// "Computing the Singular Value Decomposition of 3 x 3 matrices with | |
// minimal branching and elementary floating point operations" | |
// by Aleka McAdams et.al. | |
// http://pages.cs.wisc.edu/~sifakis/papers/SVD_TR1690.pdf | |
// This should also work on the CPU using glm | |
// Then you probably should use glm::quat instead of vec4 | |
// and mat3_cast to convert to mat3. |
Docker install instructions: https://github.com/ravi9/misc-readmes/blob/master/install-docker-centos.md
docker pull centos/devtoolset-6-toolchain-centos7
#Login into the docker with with USER 0 with sudo permissions.
docker run -it --user 0 centos/devtoolset-6-toolchain-centos7:latest /bin/bash
// From: https://code.google.com/archive/p/kri/wikis/Quaternions.wiki | |
struct Spatial { | |
vec4 pos,rot; | |
}; | |
//rotate vector | |
vec3 qrot(vec4 q, vec3 v) { | |
return v + 2.0*cross(q.xyz, cross(q.xyz,v) + q.w*v); | |
} |
CMake๋ฅผ ์ ์ฐ๋๊ฑฐ์ฃ ?
์ข์ ํด์ Visual Studio ๋ฟ์ ๋๋ค. ๊ทธ ์ด์ธ์๋ ์ ๋ถ ์ฌ๋(้ช้)์ ๋๋ค ์ฌ๋! - ์์ฑ์
- ์ด ๋ฌธ์๋ CMake๋ฅผ ์ฃผ๊ด์ ์ผ๋ก ์์ ํฉ๋๋ค
- ์ด ๋ฌธ์๋ฅผ ํตํด CMake๋ฅผ ์์ํ๊ธฐ์ ์ ํฉํ์ง ์์ต๋๋ค
https://cgold.readthedocs.io/en/latest/ 3.1 ์ฑํฐ๊น์ง ๋ฐ๋ผํด๋ณธ ์ดํ ๊ธฐ๋ณธ์ฌํญ๋ค์ ์์ฑ์ผ๋ก ์ตํ๋ ๊ฒ์ ๋๊ธฐ์ํ ๋ณด์กฐ์๋ฃ๋ก์จ ์์ฑ๋์์ต๋๋ค
We test the runtimes of simple compute shaders reading from one 3D texture using some kind of filter, and writing back to another texture. The local work group size of the compute shader is varied for some arbitrary set of work group sizes, and the effect of different internal texture formats are studied.
All tests are performed using 512x512x512
3D textures. At this size memory throughput and latency will be the primary bottleneck, so any extra calculations should have negligible impact on the timings.
All timings are measured by averaging the frame time across 128 frames, with a 128 frame warmup, with vsync disabled. Using queries might provide more stable numbers.
The work group sizes are:
Disclaimer: I have no professional education in Compulational Fluid Dynamics, these are various notes on what I found/learned when trying to learn a bit on the topic. Some of the notes lack sources as I wrote them up later often just remembering some StackExchange answer. Some things I might have misinterpreted.
export default 'Hello!' |