Crates.io | julia-set |
lib.rs | julia-set |
version | 0.1.0 |
source | src |
created_at | 2021-01-23 21:41:07.461967 |
updated_at | 2021-01-23 21:41:07.461967 |
description | Julia set computation and rendering |
homepage | |
repository | https://github.com/slowli/julia-set-rs |
max_upload_size | |
id | 345803 |
size | 474,002 |
Library to compute and render the Julia set boundary for complex-valued functions and render it to an image. Depending on the function, rendered images frequently have a fractal-like nature.
Add this to your Crate.toml
:
[dependencies]
julia-set = "0.1.0"
See the crate docs for the examples of usage.
Note that OpenCL and Vulkan backends require the corresponding platform installed
in the execution environment. You may consult platform docs or ocl
/ vulkano
crate
docs for possible installation options.
For quick testing, one may use POCL; it is an open source OpenCL implementation not tied to hardware (at the cost of being CPU-based, i.e., orders of magnitude slower than OpenCL implementations by GPU vendors). POCL may be installed from sources with the commands like these (showcased here for Ubuntu Bionic):
# Install utils for build
apt-get install build-essential cmake pkg-config libhwloc-dev zlib1g-dev
# Install OpenCL-related utils
apt-get install ocl-icd-libopencl1 ocl-icd-dev ocl-icd-opencl-dev clinfo
# Install LLVM / Clang from the official APT repository
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add -
add-apt-repository 'deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-9 main'
apt-get update
apt-get install clang-9 libclang-9-dev llvm-9 llvm-9-dev
# Get POCL sources
export POCL_VER=1.5 # latest stable version
curl -sSL "https://github.com/pocl/pocl/archive/v$POCL_VER.tar.gz" > pocl-$POCL_VER.tar.gz
tar xf "pocl-$POCL_VER.tar.gz"
# Build POCL from the sources
cd pocl-$POCL_VER
mkdir build && cd build
cmake -DWITH_LLVM_CONFIG=/usr/bin/llvm-config-9 -DCMAKE_INSTALL_PREFIX=/usr ..
make
# Verify installation
clinfo
# If successful, `clinfo` should display information about the POCL platform.
Licensed under the Apache-2.0 license.