Compare commits
|
|
@ -1,58 +0,0 @@
|
|||
jobs:
|
||||
- job: ${{ parameters.name }}
|
||||
timeoutInMinutes: 120
|
||||
variables:
|
||||
STACK_ROOT: $(Build.SourcesDirectory)/.stack-root
|
||||
pool:
|
||||
vmImage: ${{ parameters.vmImage }}
|
||||
strategy:
|
||||
matrix:
|
||||
stack:
|
||||
BUILD: stack
|
||||
STACK_YAML: stack.yaml
|
||||
ARGS: --pedantic
|
||||
stack-lts-15:
|
||||
BUILD: stack
|
||||
STACK_YAML: stack-lts-15.yaml
|
||||
stack-lts-14:
|
||||
BUILD: stack
|
||||
STACK_YAML: stack-lts-14.yaml
|
||||
#stack-nightly:
|
||||
# BUILD: stack
|
||||
# ARGS: --resolver nightly --no-run-tests
|
||||
maxParallel: 6
|
||||
steps:
|
||||
- task: Cache@2
|
||||
inputs:
|
||||
key: ${{ parameters.name }} | ${{ parameters.vmImage }} | $(ARGS) | $(STACK_YAML) | stack-root | $(Agent.OS) | v2
|
||||
path: $(STACK_ROOT)
|
||||
cacheHitVar: CACHE_RESTORED
|
||||
displayName: Cache stack root
|
||||
- script: |
|
||||
set -o xtrace
|
||||
#sudo add-apt-repository ppa:jonathonf/ffmpeg-4
|
||||
sudo apt-get update
|
||||
# sudo apt-get install libopenblas-dev libgfortran4
|
||||
sudo apt-get install liblapack-dev libblas-dev
|
||||
#sudo apt-get install ffmpeg
|
||||
#sudo apt-get install texlive texlive-latex-base texlive-latex-extra texlive-fonts-extra texlive-science texlive-xetex texlive-latex-recommended texlive-lang-english texlive-lang-chinese
|
||||
#sudo apt-get install povray
|
||||
mkdir -p ~/.local/bin
|
||||
curl -L https://get.haskellstack.org/stable/linux-x86_64.tar.gz | tar xz --wildcards --strip-components=1 -C ~/.local/bin '*/stack'
|
||||
|
||||
export PATH=$HOME/.local/bin:$PATH
|
||||
displayName: 'Setup'
|
||||
- script: |
|
||||
set -o xtrace
|
||||
stack --install-ghc build $ARGS --only-dependencies
|
||||
stack --install-ghc build $ARGS --test --only-dependencies
|
||||
displayName: 'Install dependencies'
|
||||
- script: |
|
||||
set -o xtrace
|
||||
# stack ./examples/counter.hs check
|
||||
stack test $ARGS
|
||||
displayName: 'Build & Test'
|
||||
- script: |
|
||||
set -o xtrace
|
||||
stack haddock --no-haddock-deps $ARGS
|
||||
displayName: 'Build documentation'
|
||||
|
|
@ -1,49 +0,0 @@
|
|||
jobs:
|
||||
- job: ${{ parameters.name }}
|
||||
timeoutInMinutes: 120
|
||||
variables:
|
||||
STACK_ROOT: $(Build.SourcesDirectory)/.stack-root
|
||||
pool:
|
||||
vmImage: ${{ parameters.vmImage }}
|
||||
strategy:
|
||||
matrix:
|
||||
stack:
|
||||
BUILD: stack
|
||||
STACK_YAML: stack.yaml
|
||||
ARGS: --pedantic
|
||||
#stack-lts-16:
|
||||
# BUILD: stack
|
||||
# STACK_YAML: stack-lts-16.yaml
|
||||
stack-lts-17:
|
||||
BUILD: stack
|
||||
STACK_YAML: stack-lts-17.yaml
|
||||
maxParallel: 6
|
||||
steps:
|
||||
- task: Cache@2
|
||||
inputs:
|
||||
key: ${{ parameters.name }} | "${{ parameters.vmImage }}" | $(STACK_YAML) | stack-root | $(Agent.OS) | version4
|
||||
path: $(STACK_ROOT)
|
||||
cacheHitVar: CACHE_RESTORED
|
||||
displayName: Cache stack root
|
||||
- script: |
|
||||
# brew install gcc
|
||||
# brew install blas
|
||||
# brew install lapack
|
||||
# brew install openblas
|
||||
mkdir -p ~/.local/bin
|
||||
curl -skL https://get.haskellstack.org/stable/osx-x86_64.tar.gz | tar xz --strip-components=1 --include '*/stack' -C ~/.local/bin;
|
||||
export PATH=$HOME/.local/bin:$PATH
|
||||
# Check if the cache has been corrupted. Delete it if it has.
|
||||
stack exec ghc -- --version || rm -fr $(STACK_ROOT)
|
||||
displayName: 'Setup'
|
||||
- script: |
|
||||
stack --install-ghc build $ARGS --only-dependencies --extra-lib-dirs=/usr/local/opt/openblas/lib
|
||||
stack --install-ghc build --test $ARGS --only-dependencies
|
||||
displayName: 'Install dependencies'
|
||||
- script: |
|
||||
# stack ./examples/counter.hs check
|
||||
stack test $ARGS
|
||||
displayName: 'Build & Test'
|
||||
- script: |
|
||||
stack haddock --no-haddock-deps
|
||||
displayName: 'Build documentation'
|
||||
|
|
@ -1,50 +0,0 @@
|
|||
jobs:
|
||||
- job: ${{ parameters.name }}
|
||||
timeoutInMinutes: 120
|
||||
variables:
|
||||
STACK_ROOT: $(Build.SourcesDirectory)/.stack-root
|
||||
pool:
|
||||
vmImage: ${{ parameters.vmImage }}
|
||||
strategy:
|
||||
matrix:
|
||||
stack:
|
||||
BUILD: stack
|
||||
STACK_YAML: stack.yaml
|
||||
ARGS: --pedantic
|
||||
# lts-16.12 fails intermittently on windows. :(
|
||||
# lts-15 fails due to segfaults. Think it is a GHC issue.
|
||||
# stack-lts-15:
|
||||
# BUILD: stack
|
||||
# STACK_YAML: stack-lts-15.yaml
|
||||
# ARGS: --no-run-tests
|
||||
stack-lts-14:
|
||||
BUILD: stack
|
||||
STACK_YAML: stack-lts-14.yaml
|
||||
ARGS: --no-run-tests
|
||||
maxParallel: 6
|
||||
steps:
|
||||
- task: Cache@2
|
||||
inputs:
|
||||
key: ${{ parameters.name }} | ${{ parameters.vmImage }} | $(STACK_YAML) | stack-root | $(Agent.OS) | version3
|
||||
path: $(STACK_ROOT)
|
||||
cacheHitVar: CACHE_RESTORED
|
||||
displayName: Cache stack root
|
||||
- bash: |
|
||||
set -o xtrace
|
||||
curl -sSkL http://www.stackage.org/stack/windows-x86_64 -o /usr/bin/stack.zip
|
||||
unzip -o /usr/bin/stack.zip -d /usr/bin/
|
||||
|
||||
displayName: 'Setup'
|
||||
- bash: |
|
||||
set -o xtrace
|
||||
stack --install-ghc build $ARGS --no-keep-going --fast --only-dependencies
|
||||
stack --install-ghc test $ARGS --no-keep-going --fast --only-dependencies
|
||||
displayName: 'Install dependencies'
|
||||
- bash: |
|
||||
set -o xtrace
|
||||
# stack ./examples/counter.hs check
|
||||
stack test --fast $ARGS
|
||||
displayName: 'Build & Test'
|
||||
- bash: |
|
||||
# stack haddock --no-haddock-deps
|
||||
displayName: 'Build documentation'
|
||||
1
.github/FUNDING.yml
vendored
|
|
@ -1 +0,0 @@
|
|||
github: Lemmih
|
||||
20
.github/dependabot.yml
vendored
|
|
@ -1,20 +0,0 @@
|
|||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: github-actions
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: daily
|
||||
time: "11:00"
|
||||
open-pull-requests-limit: 10
|
||||
- package-ecosystem: elm
|
||||
directory: "/viewer-elm"
|
||||
schedule:
|
||||
interval: daily
|
||||
time: "11:00"
|
||||
open-pull-requests-limit: 10
|
||||
- package-ecosystem: elm
|
||||
directory: "/playground/viewer-elm"
|
||||
schedule:
|
||||
interval: daily
|
||||
time: "11:00"
|
||||
open-pull-requests-limit: 10
|
||||
57
.github/disabled-workflows/stackage-nightly.yml
vendored
|
|
@ -1,57 +0,0 @@
|
|||
name: Stackage nightly
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-haskell@v1
|
||||
with:
|
||||
stack-version: 'latest'
|
||||
|
||||
- name: Cache
|
||||
uses: actions/cache@v1
|
||||
env:
|
||||
cache-name: cache-stack
|
||||
with:
|
||||
path: |
|
||||
~/.stack
|
||||
~/.stack-work
|
||||
~/.ghc
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/*.cabal') }}-${{ hashFiles('**/cabal.project') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-build-${{ env.cache-name }}-
|
||||
${{ runner.os }}-build-
|
||||
${{ runner.os }}-
|
||||
|
||||
- name: Build nightly
|
||||
env:
|
||||
ACTIONS_ALLOW_UNSECURE_COMMANDS: true
|
||||
run: |
|
||||
rm -fr discord-bot playground dist-newstyle
|
||||
rm -f stack.yaml
|
||||
stack init --resolver nightly \
|
||||
&& echo "::set-env name=passed::true" \
|
||||
|| echo "::set-env name=passed::false"
|
||||
stack build --resolver nightly --haddock --test --only-dependencies --bench --no-run-benchmarks \
|
||||
&& echo "::set-env name=passed::true" \
|
||||
|| echo "::set-env name=passed::false"
|
||||
- name: Test nightly
|
||||
if: env.passed == 'true'
|
||||
run: |
|
||||
stack build --resolver nightly --haddock --test --bench --no-run-benchmarks
|
||||
- name: Report status
|
||||
if: env.passed == 'false'
|
||||
uses: mshick/add-pr-comment@v1
|
||||
with:
|
||||
message: |
|
||||
Warning: Failed to build against stack nightly.
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
repo-token-user-login: 'github-actions[bot]' # The user.login for temporary GitHub tokens
|
||||
allow-repeats: false # This is the default
|
||||
109
.github/workflows/gh-pages.yml
vendored
|
|
@ -1,109 +0,0 @@
|
|||
name: GitHub Page
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-haskell@v1
|
||||
with:
|
||||
ghc-version: 'latest'
|
||||
cabal-version: 'latest'
|
||||
- uses: jorelali/setup-elm@v3
|
||||
with:
|
||||
elm-version: 0.19.1
|
||||
|
||||
- name: Cache
|
||||
uses: actions/cache@v3.0.11
|
||||
with:
|
||||
path: |
|
||||
~/.cabal
|
||||
~/.stack
|
||||
~/.stack-work
|
||||
~/.dist-newstyle
|
||||
~/.ghc
|
||||
key: ${{ runner.os }}-${{ hashFiles('**/*.cabal') }}-cache
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
cabal v2-update
|
||||
cabal v2-build --only-dependencies
|
||||
mkdir pages
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
cabal v2-build
|
||||
|
||||
# - name: Generate HPC files
|
||||
# run: |
|
||||
# set -o xtrace
|
||||
# for gold in examples/golden/*.golden; do
|
||||
# BASE=examples/$(basename $gold)
|
||||
# BASE=${BASE%.golden}
|
||||
# cabal v2-exec --enable-coverage -- ghc -package reanimate "$BASE.hs" --make
|
||||
# reanimate_datadir=$(pwd) ${BASE%.hs} test > /dev/null
|
||||
# done;
|
||||
|
||||
# - name: Merge HPC files
|
||||
# run: hpc sum --union *.tix --output=total.tix
|
||||
|
||||
# - name: Report
|
||||
# run: |
|
||||
# hpc report --hpcdir $(find dist-newstyle -name 'hpc')/vanilla/mix/*/ total.tix
|
||||
|
||||
# - name: Markup
|
||||
# run: |
|
||||
# hpc markup --destdir=hpc --hpcdir $(find dist-newstyle -name 'hpc')/vanilla/mix/*/ total.tix
|
||||
|
||||
# - name: HPC Badge
|
||||
# run: |
|
||||
# COVERAGE=$(cat hpc/hpc_index.html | tr '\n' ' ' | sed "s/.*Program Coverage Total.*>\([0-9]\{1,3\}\)%.*>\([0-9]\{1,3\}\)%.*>\([0-9]\{1,3\}\)%.*/\1/")
|
||||
# echo "\
|
||||
# { \"schemaVersion\": 1, \
|
||||
# \"label\": \"api tests\", \
|
||||
# \"message\": \"$COVERAGE%\", \
|
||||
# \"color\": \"success\" \
|
||||
# }" > pages/hpc_badge.json
|
||||
|
||||
- name: Haddock Badge
|
||||
run: |
|
||||
# Stack is required because cabal doesn't build docs for dependencies.
|
||||
# Without those, coverage will not reach 100%
|
||||
stack build --haddock --only-dependencies
|
||||
stack haddock 2>&1 | grep ") in " | sort -hr > pages/haddock.txt
|
||||
COVERAGE=$(awk '{good += $3; total += $5} END {printf "%.0f", good/total*100}' pages/haddock.txt)
|
||||
echo "\
|
||||
{ \"schemaVersion\": 1, \
|
||||
\"label\": \"api docs\", \
|
||||
\"message\": \"$COVERAGE%\", \
|
||||
\"color\": \"success\" \
|
||||
}" > pages/haddock_badge.json
|
||||
|
||||
# Is there a way to reuse the script from playground.yml?
|
||||
- name: Playground
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get -y install texlive texlive-latex-base texlive-latex-extra
|
||||
CWD=`pwd`
|
||||
stack build
|
||||
cd playground
|
||||
stack build
|
||||
# We need to install latex before we can generate the snippets.
|
||||
stack exec --cwd ../ playground snippets playground/snippets > viewer-elm/dist/snippets.js
|
||||
cd viewer-elm
|
||||
npm install
|
||||
npm run build
|
||||
mkdir $CWD/pages/playground
|
||||
cp dist/* $CWD/pages/playground/
|
||||
|
||||
- name: Deploy 🚀
|
||||
uses: JamesIves/github-pages-deploy-action@v4.4.0
|
||||
with:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
BRANCH: gh-pages # The branch the action should deploy to.
|
||||
FOLDER: pages # The folder the action should deploy.
|
||||
40
.github/workflows/haskell.yml
vendored
|
|
@ -1,40 +0,0 @@
|
|||
name: Haskell CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-haskell@v1
|
||||
with:
|
||||
ghc-version: 'latest'
|
||||
cabal-version: '3.0'
|
||||
|
||||
- name: Cache
|
||||
uses: actions/cache@v3.0.11
|
||||
env:
|
||||
cache-name: cache-cabal
|
||||
with:
|
||||
path: ~/.cabal
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/*.cabal') }}-${{ hashFiles('**/cabal.project') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-build-${{ env.cache-name }}-
|
||||
${{ runner.os }}-build-
|
||||
${{ runner.os }}-
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
cabal update
|
||||
cabal build --only-dependencies --enable-tests --enable-benchmarks
|
||||
- name: Build
|
||||
run: cabal build
|
||||
- name: Test
|
||||
run: cabal test
|
||||
20
.github/workflows/nix.yml.disabled
vendored
|
|
@ -1,20 +0,0 @@
|
|||
name: "Nix CI"
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2.3.1
|
||||
- uses: cachix/install-nix-action@v10
|
||||
with:
|
||||
skip_adding_nixpkgs_channel: true
|
||||
- uses: cachix/cachix-action@v6
|
||||
with:
|
||||
name: cdodev
|
||||
signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}'
|
||||
- run: cachix use iohk && cachix use cdodev
|
||||
- run: nix-build
|
||||
51
.github/workflows/playground.yml
vendored
|
|
@ -1,51 +0,0 @@
|
|||
name: Playground checks
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-haskell@v1
|
||||
with:
|
||||
ghc-version: '8.8'
|
||||
cabal-version: 'latest'
|
||||
- uses: jorelali/setup-elm@v3
|
||||
with:
|
||||
elm-version: 0.19.1
|
||||
|
||||
- name: Cache
|
||||
uses: actions/cache@v3.0.11
|
||||
with:
|
||||
path: |
|
||||
~/.stack
|
||||
~/.stack-work
|
||||
~/.ghc
|
||||
key: ${{ runner.os }}-${{ hashFiles('**/*.cabal') }}-cache-version2
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get -y install texlive texlive-latex-base texlive-latex-extra
|
||||
stack build --only-dependencies
|
||||
(cd playground && stack build --only-dependencies)
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
stack build
|
||||
(cd playground && stack build)
|
||||
|
||||
- name: Playground
|
||||
run: |
|
||||
CWD=`pwd`
|
||||
cd playground
|
||||
# We need to install latex before we can generate the snippets.
|
||||
stack exec --cwd ../ playground snippets playground/snippets > viewer-elm/dist/snippets.js
|
||||
cd viewer-elm
|
||||
npm install || npm install || npm install
|
||||
npm run build
|
||||
23
.gitignore
vendored
|
|
@ -1,23 +0,0 @@
|
|||
dist
|
||||
dist-*
|
||||
cabal-dev
|
||||
*.o
|
||||
*.hi
|
||||
*.hie
|
||||
*.chi
|
||||
*.chs.h
|
||||
*.dyn_o
|
||||
*.dyn_hi
|
||||
.hpc
|
||||
.hsenv
|
||||
.cabal-sandbox/
|
||||
cabal.sandbox.config
|
||||
*.prof
|
||||
*.aux
|
||||
*.hp
|
||||
*.eventlog
|
||||
.stack-work/
|
||||
cabal.project.local
|
||||
cabal.project.local~
|
||||
.HTF/
|
||||
.ghc.environment.*
|
||||
|
|
@ -1,229 +0,0 @@
|
|||
# stylish-haskell configuration file
|
||||
# ==================================
|
||||
|
||||
# The stylish-haskell tool is mainly configured by specifying steps. These steps
|
||||
# are a list, so they have an order, and one specific step may appear more than
|
||||
# once (if needed). Each file is processed by these steps in the given order.
|
||||
steps:
|
||||
# Convert some ASCII sequences to their Unicode equivalents. This is disabled
|
||||
# by default.
|
||||
# - unicode_syntax:
|
||||
# # In order to make this work, we also need to insert the UnicodeSyntax
|
||||
# # language pragma. If this flag is set to true, we insert it when it's
|
||||
# # not already present. You may want to disable it if you configure
|
||||
# # language extensions using some other method than pragmas. Default:
|
||||
# # true.
|
||||
# add_language_pragma: true
|
||||
|
||||
# Align the right hand side of some elements. This is quite conservative
|
||||
# and only applies to statements where each element occupies a single
|
||||
# line.
|
||||
- simple_align:
|
||||
cases: true
|
||||
top_level_patterns: true
|
||||
records: true
|
||||
|
||||
# Import cleanup
|
||||
- imports:
|
||||
# There are different ways we can align names and lists.
|
||||
#
|
||||
# - global: Align the import names and import list throughout the entire
|
||||
# file.
|
||||
#
|
||||
# - file: Like global, but don't add padding when there are no qualified
|
||||
# imports in the file.
|
||||
#
|
||||
# - group: Only align the imports per group (a group is formed by adjacent
|
||||
# import lines).
|
||||
#
|
||||
# - none: Do not perform any alignment.
|
||||
#
|
||||
# Default: global.
|
||||
align: global
|
||||
|
||||
# The following options affect only import list alignment.
|
||||
#
|
||||
# List align has following options:
|
||||
#
|
||||
# - after_alias: Import list is aligned with end of import including
|
||||
# 'as' and 'hiding' keywords.
|
||||
#
|
||||
# > import qualified Data.List as List (concat, foldl, foldr, head,
|
||||
# > init, last, length)
|
||||
#
|
||||
# - with_alias: Import list is aligned with start of alias or hiding.
|
||||
#
|
||||
# > import qualified Data.List as List (concat, foldl, foldr, head,
|
||||
# > init, last, length)
|
||||
#
|
||||
# - new_line: Import list starts always on new line.
|
||||
#
|
||||
# > import qualified Data.List as List
|
||||
# > (concat, foldl, foldr, head, init, last, length)
|
||||
#
|
||||
# Default: after_alias
|
||||
list_align: after_alias
|
||||
|
||||
# Right-pad the module names to align imports in a group:
|
||||
#
|
||||
# - true: a little more readable
|
||||
#
|
||||
# > import qualified Data.List as List (concat, foldl, foldr,
|
||||
# > init, last, length)
|
||||
# > import qualified Data.List.Extra as List (concat, foldl, foldr,
|
||||
# > init, last, length)
|
||||
#
|
||||
# - false: diff-safe
|
||||
#
|
||||
# > import qualified Data.List as List (concat, foldl, foldr, init,
|
||||
# > last, length)
|
||||
# > import qualified Data.List.Extra as List (concat, foldl, foldr,
|
||||
# > init, last, length)
|
||||
#
|
||||
# Default: true
|
||||
pad_module_names: true
|
||||
|
||||
# Long list align style takes effect when import is too long. This is
|
||||
# determined by 'columns' setting.
|
||||
#
|
||||
# - inline: This option will put as much specs on same line as possible.
|
||||
#
|
||||
# - new_line: Import list will start on new line.
|
||||
#
|
||||
# - new_line_multiline: Import list will start on new line when it's
|
||||
# short enough to fit to single line. Otherwise it'll be multiline.
|
||||
#
|
||||
# - multiline: One line per import list entry.
|
||||
# Type with constructor list acts like single import.
|
||||
#
|
||||
# > import qualified Data.Map as M
|
||||
# > ( empty
|
||||
# > , singleton
|
||||
# > , ...
|
||||
# > , delete
|
||||
# > )
|
||||
#
|
||||
# Default: inline
|
||||
long_list_align: inline
|
||||
|
||||
# Align empty list (importing instances)
|
||||
#
|
||||
# Empty list align has following options
|
||||
#
|
||||
# - inherit: inherit list_align setting
|
||||
#
|
||||
# - right_after: () is right after the module name:
|
||||
#
|
||||
# > import Vector.Instances ()
|
||||
#
|
||||
# Default: inherit
|
||||
empty_list_align: inherit
|
||||
|
||||
# List padding determines indentation of import list on lines after import.
|
||||
# This option affects 'long_list_align'.
|
||||
#
|
||||
# - <integer>: constant value
|
||||
#
|
||||
# - module_name: align under start of module name.
|
||||
# Useful for 'file' and 'group' align settings.
|
||||
list_padding: 4
|
||||
|
||||
# Separate lists option affects formatting of import list for type
|
||||
# or class. The only difference is single space between type and list
|
||||
# of constructors, selectors and class functions.
|
||||
#
|
||||
# - true: There is single space between Foldable type and list of it's
|
||||
# functions.
|
||||
#
|
||||
# > import Data.Foldable (Foldable (fold, foldl, foldMap))
|
||||
#
|
||||
# - false: There is no space between Foldable type and list of it's
|
||||
# functions.
|
||||
#
|
||||
# > import Data.Foldable (Foldable(fold, foldl, foldMap))
|
||||
#
|
||||
# Default: true
|
||||
separate_lists: true
|
||||
|
||||
# Space surround option affects formatting of import lists on a single
|
||||
# line. The only difference is single space after the initial
|
||||
# parenthesis and a single space before the terminal parenthesis.
|
||||
#
|
||||
# - true: There is single space associated with the enclosing
|
||||
# parenthesis.
|
||||
#
|
||||
# > import Data.Foo ( foo )
|
||||
#
|
||||
# - false: There is no space associated with the enclosing parenthesis
|
||||
#
|
||||
# > import Data.Foo (foo)
|
||||
#
|
||||
# Default: false
|
||||
space_surround: false
|
||||
|
||||
# Language pragmas
|
||||
- language_pragmas:
|
||||
# We can generate different styles of language pragma lists.
|
||||
#
|
||||
# - vertical: Vertical-spaced language pragmas, one per line.
|
||||
#
|
||||
# - compact: A more compact style.
|
||||
#
|
||||
# - compact_line: Similar to compact, but wrap each line with
|
||||
# `{-#LANGUAGE #-}'.
|
||||
#
|
||||
# Default: vertical.
|
||||
style: vertical
|
||||
|
||||
# Align affects alignment of closing pragma brackets.
|
||||
#
|
||||
# - true: Brackets are aligned in same column.
|
||||
#
|
||||
# - false: Brackets are not aligned together. There is only one space
|
||||
# between actual import and closing bracket.
|
||||
#
|
||||
# Default: true
|
||||
align: true
|
||||
|
||||
# stylish-haskell can detect redundancy of some language pragmas. If this
|
||||
# is set to true, it will remove those redundant pragmas. Default: true.
|
||||
remove_redundant: true
|
||||
|
||||
# Replace tabs by spaces. This is disabled by default.
|
||||
# - tabs:
|
||||
# # Number of spaces to use for each tab. Default: 8, as specified by the
|
||||
# # Haskell report.
|
||||
# spaces: 8
|
||||
|
||||
# Remove trailing whitespace
|
||||
- trailing_whitespace: {}
|
||||
|
||||
# Squash multiple spaces between the left and right hand sides of some
|
||||
# elements into single spaces. Basically, this undoes the effect of
|
||||
# simple_align but is a bit less conservative.
|
||||
# - squash: {}
|
||||
|
||||
# A common setting is the number of columns (parts of) code will be wrapped
|
||||
# to. Different steps take this into account. Default: 80.
|
||||
columns: 100
|
||||
|
||||
# By default, line endings are converted according to the OS. You can override
|
||||
# preferred format here.
|
||||
#
|
||||
# - native: Native newline format. CRLF on Windows, LF on other OSes.
|
||||
#
|
||||
# - lf: Convert to LF ("\n").
|
||||
#
|
||||
# - crlf: Convert to CRLF ("\r\n").
|
||||
#
|
||||
# Default: native.
|
||||
newline: native
|
||||
|
||||
# Sometimes, language extensions are specified in a cabal file or from the
|
||||
# command line instead of using language pragmas in the file. stylish-haskell
|
||||
# needs to be aware of these, so it can parse the file correctly.
|
||||
#
|
||||
# No language extensions are enabled by default.
|
||||
# language_extensions:
|
||||
# - TemplateHaskell
|
||||
# - QuasiQuotes
|
||||
216
ChangeLog.md
|
|
@ -1,216 +0,0 @@
|
|||
# Revision history for reanimate
|
||||
|
||||
Notable changes to the project will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](http://keepachangelog.com/) and the
|
||||
project adheres to the [Haskell Package Versioning
|
||||
Policy (PVP)](https://pvp.haskell.org)
|
||||
|
||||
## 1.1.7.0 -- 2022-10-15
|
||||
|
||||
* Derive `Eq` for APolygon
|
||||
|
||||
## 1.1.6.0 -- 2022-06-02
|
||||
|
||||
* Drop hgeometry dependency.
|
||||
|
||||
## 1.1.4.0 -- 2021-03-11
|
||||
|
||||
* Fix build issue on M1 MacOS.
|
||||
* Improve documentation.
|
||||
* Fix bug in 'reanimateLiveEntry'.
|
||||
* Simplify 'mkRect' definition.
|
||||
|
||||
## 1.1.3.2 -- 2021-01-14
|
||||
|
||||
* Add flag for disabling the HGeometry dependency.
|
||||
|
||||
## 1.1.3.1 -- 2021-01-04
|
||||
|
||||
* Fixed performance issue on Windows.
|
||||
* Fixed live viewer with Firefox.
|
||||
|
||||
## 1.1.3.0 -- 2021-01-04
|
||||
|
||||
## Added
|
||||
* Reanimate.reanimateLive
|
||||
* Reanimate.reanimateLiveEntry
|
||||
|
||||
## 1.1.2.0 -- 2020-10-27
|
||||
|
||||
### Added
|
||||
|
||||
* Reanimate.LaTeX.latexCfgChunks.
|
||||
|
||||
### Other/Non-visible
|
||||
|
||||
* xeLaTeX bug fixes.
|
||||
* Documentation for external data sets.
|
||||
|
||||
## 1.1.1.0 -- 2020-10-10
|
||||
|
||||
### Added
|
||||
|
||||
* External icon sets.
|
||||
* Font configurations.
|
||||
|
||||
### Other/Non-visible
|
||||
|
||||
* Improved unicode support.
|
||||
* Improved support for filter effects.
|
||||
* Bug fix in the path parser.
|
||||
|
||||
## 1.1.0.0 -- 2020-10-07
|
||||
|
||||
### Added
|
||||
|
||||
* LaTeX font configurations.
|
||||
* SVG support for all filter effects.
|
||||
|
||||
## 1.0.0.0 -- 2020-09-20
|
||||
|
||||
### Changed
|
||||
|
||||
* Objects: Use Linear.V2 instead of tuples.
|
||||
* Reanimate.Scene.sceneAnimation -> Reanimate.Scene.scene
|
||||
|
||||
### Other/Non-visible
|
||||
|
||||
* Improved object documentation.
|
||||
* CI stability improvements.
|
||||
* Add interactive tutorial.
|
||||
* Minor playground improvements.
|
||||
|
||||
## 0.5.0.0 -- 2020-09-09
|
||||
|
||||
### Added
|
||||
|
||||
* Hashable instance for SVG.
|
||||
|
||||
### Changed
|
||||
|
||||
* Improve efficiency of time variables (thanks to Shaurya Gupta).
|
||||
* Major refactoring of SVG interface.
|
||||
* Haddock improvements.
|
||||
* Improve consistency of object bounding-box calculations.
|
||||
* Rewrite object transitions in terms of Animations.
|
||||
|
||||
### Removed
|
||||
|
||||
* Reanimate.Scene.tweenVarUnclamped
|
||||
* Reanimate.Math.SSSP.pdual
|
||||
|
||||
### Contributors
|
||||
|
||||
* Shaurya Gupta (@sureyeaah)
|
||||
* Jan Hrček (@jhrcek)
|
||||
|
||||
## 0.4.3.0 -- 2020-08-29
|
||||
|
||||
* Improve documentation.
|
||||
|
||||
## 0.4.2.0 -- 2020-08-27
|
||||
|
||||
* Web-viewer: Use GHCi to reload code, reducing latency by ~100x.
|
||||
* Improve caching for blender and povray.
|
||||
* Hide many internal modules.
|
||||
* Move hmatrix dependency to a separate package.
|
||||
* Use hgeometry instead of broken C++ code.
|
||||
* Introduce the basics for a new graphical object system.
|
||||
* Introduce online playground.
|
||||
* Introduce interactive embedded player.
|
||||
* Hide internal modules and bring documentation coverage up to 100%.
|
||||
|
||||
## 0.4.1.0 -- 2020-07-30
|
||||
|
||||
* Slightly improved error messages.
|
||||
|
||||
## 0.4.0.0 -- 2020-07-28
|
||||
|
||||
* Show progress when running ffmpeg.
|
||||
* Small improvements to the scene API.
|
||||
* Bug fixes to the voice API.
|
||||
* Support ImageMagick version 7.
|
||||
* Improved Windows build support.
|
||||
* Improved error reporting in web-viewer.
|
||||
* Improved error messages when ffmpeg doesn't support SVGs.
|
||||
* Improved filter-effect support.
|
||||
* Generalized LaTeX support.
|
||||
* New experimental object system.
|
||||
* Discord bot capable of rendering animations in chat.
|
||||
* Lots of assorted bug fixes and minor improvements.
|
||||
|
||||
## 0.3.3.0 -- 2020-05-22
|
||||
|
||||
* Voice control via the Gentle forced-aligner.
|
||||
* Rename Reanimate.Interpolate to Reanimate.ColorComponents
|
||||
* Rename Reanimate.Signals to Reanimate.Ease
|
||||
* Fix positioning of latex output such that the baseline starts at (0,0)
|
||||
|
||||
## 0.3.2.0 -- 2020-05-16
|
||||
|
||||
* Fix bug that forced GIF width to 320 pixels.
|
||||
* Add helper for creating custom viewboxes, withViewBox.
|
||||
* Add newSprite_, newSpriteSVG_.
|
||||
* Drop support for lts-11 and lts-12. Lts-15, lts-14 and lts-13 are supported.
|
||||
* Add common interface for polygon morphing.
|
||||
|
||||
## 0.3.1.0 -- 2020-05-12
|
||||
|
||||
* Expose 'mkImage'
|
||||
|
||||
## 0.3.0.0 -- 2020-05-11
|
||||
|
||||
* Improve README.md with better examples at a higher framerate.
|
||||
* Improve canvas documentation, courtesy of William Yao.
|
||||
* Fix 'renameFile' bug when moving files between different file-systems.
|
||||
* Improve GeoJSON performance.
|
||||
* Improve SVG rendering performance.
|
||||
* CLI: Show time spent and time remaining when rendering.
|
||||
* Better support for external images.
|
||||
* Support external raster engines (inkscape, image magick, rsvg).
|
||||
* Fix framerate bug affecting GIFs.
|
||||
* Improve boundingbox performance.
|
||||
* Add generalized cubic bezier signal.
|
||||
|
||||
## 0.2.0.2 -- 2020-02-25
|
||||
|
||||
* Rewrite viewer from javascript to elm.
|
||||
* Improve API documentation.
|
||||
* Support for GeoJSON files (rendering borders, etc).
|
||||
* Fix bug affecting GIF frame rates.
|
||||
* Improve SVG serialization performance.
|
||||
* Add support for transitions (ie. functions that merge animations).
|
||||
* Properly handle ctrl-c when rendering.
|
||||
* Improve accuracy of bounding-box approximation.
|
||||
* Rewrite the API for building animations sequentially.
|
||||
* Expand 'pathify' to work on a larger subset of SVG.
|
||||
* Respect aspect ratio when 'height' or 'width' is specified but not both.
|
||||
|
||||
## 0.1.6.0 -- 2019-09-14
|
||||
|
||||
* Test suite.
|
||||
* Improved Windows support.
|
||||
* Automated builds on Linux, Mac, and Windows.
|
||||
* Automated builds with lts-13, lts-12, and lts-11.
|
||||
* Monadic language for composing animations (Reanimate.Scene).
|
||||
* Support for Povray.
|
||||
* Viewer: Incrementally generate videos with increasing fps.
|
||||
* 'check' command to verify external dependencies.
|
||||
* Built-in data for color theory (cone sensitivity etc).
|
||||
* Built-in colormaps.
|
||||
* Raster image support.
|
||||
* Reorganized signals.
|
||||
* Color interpolation (rgb, hsv, lab, xyz).
|
||||
* Improved performance of multi-threaded renderer.
|
||||
|
||||
## 0.1.5.0 -- 2019-07-07
|
||||
|
||||
* Basic driver for live previewing and rendering.
|
||||
* Basic tools for manipulating SVGs (pathification, simplification, lowering
|
||||
transformations, etc).
|
||||
* Automated CI builds (azure).
|
||||
|
||||
## 0.1.0.0 -- 2019-03-08
|
||||
|
||||
* First version. Released on an unsuspecting world.
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
FROM haskell:8.8.4
|
||||
|
||||
ENV LANG=C.UTF-8 \
|
||||
LC_ALL=C.UTF-8 \
|
||||
PATH=/root/.local/bin:$PATH \
|
||||
CUDA_PATH=/usr/local/cuda-$CUDA_VERSION \
|
||||
CPATH=$JVM_PATH/include:$JVM_PATH/include/linux:$LLVM_PATH/include \
|
||||
DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get install -y --no-install-recommends \
|
||||
libblas-dev liblapack-dev ffmpeg \
|
||||
curl texlive texlive-latex-base texlive-latex-extra \
|
||||
texlive-fonts-extra texlive-science texlive-xetex \
|
||||
texlive-latex-recommended texlive-lang-english \
|
||||
texlive-lang-chinese texlive-plain-generic \
|
||||
unzip
|
||||
|
||||
WORKDIR /src
|
||||
|
||||
# Install reanimate dependencies and cache the layer
|
||||
ADD reanimate.cabal stack-lts-16.yaml ./
|
||||
ADD stack-lts-16.yaml ./stack.yaml
|
||||
RUN stack build --only-dependencies --no-install-ghc --system-ghc --haddock
|
||||
RUN rm reanimate.cabal stack.yaml
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
FROM reanimate/base
|
||||
|
||||
WORKDIR /src
|
||||
|
||||
# Install reanimate dependencies and cache the layer
|
||||
ADD reanimate.cabal ./
|
||||
ADD stack-lts-16.yaml ./stack.yaml
|
||||
RUN stack build --only-dependencies --no-install-ghc --system-ghc --haddock
|
||||
|
||||
# Install discord-bot dependencies and cache the layer
|
||||
ADD discord-bot/discord-bot.cabal discord-bot/stack.yaml ./discord-bot/
|
||||
RUN cd discord-bot && \
|
||||
stack build --only-dependencies --no-install-ghc --system-ghc
|
||||
|
||||
# Add source after dependencies have been installed as to not invalidate the caches
|
||||
ADD data data
|
||||
ADD src src
|
||||
ADD unix unix
|
||||
ADD windows windows
|
||||
ADD .git .git
|
||||
ADD viewer-elm viewer-elm
|
||||
ADD Setup.hs ./
|
||||
|
||||
# Build reanimate
|
||||
RUN stack build --no-install-ghc --system-ghc
|
||||
|
||||
# Add bot sources and build it
|
||||
ADD discord-bot discord-bot
|
||||
RUN (cd discord-bot && \
|
||||
stack install --no-install-ghc --system-ghc) && \
|
||||
discord-bot test
|
||||
|
||||
|
||||
ENTRYPOINT discord-bot
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
FROM reanimate/base
|
||||
|
||||
WORKDIR /src
|
||||
|
||||
# Install reanimate dependencies and cache the layer
|
||||
ADD reanimate.cabal ./
|
||||
ADD stack-lts-16.yaml ./stack.yaml
|
||||
RUN stack build --only-dependencies --no-install-ghc --system-ghc --haddock
|
||||
|
||||
# Install playground dependencies and cache the layer
|
||||
ADD playground/playground.cabal playground/stack.yaml ./playground/
|
||||
RUN cd playground && \
|
||||
stack build --only-dependencies --no-install-ghc --system-ghc
|
||||
|
||||
# Add source after dependencies have been installed as to not invalidate the caches
|
||||
ADD data data
|
||||
ADD src src
|
||||
ADD unix unix
|
||||
ADD windows windows
|
||||
ADD .git .git
|
||||
ADD viewer-elm viewer-elm
|
||||
ADD Setup.hs ./
|
||||
|
||||
# Build reanimate
|
||||
RUN stack build --no-install-ghc --system-ghc
|
||||
|
||||
# Add bot sources and build it
|
||||
ADD playground playground
|
||||
RUN (cd playground && \
|
||||
stack install --no-install-ghc --system-ghc) && \
|
||||
playground test
|
||||
|
||||
EXPOSE 10161/tcp
|
||||
EXPOSE 10162/tcp
|
||||
|
||||
ENTRYPOINT playground
|
||||
24
LICENSE
|
|
@ -1,24 +0,0 @@
|
|||
This is free and unencumbered software released into the public domain.
|
||||
|
||||
Anyone is free to copy, modify, publish, use, compile, sell, or
|
||||
distribute this software, either in source code form or as a compiled
|
||||
binary, for any purpose, commercial or non-commercial, and by any
|
||||
means.
|
||||
|
||||
In jurisdictions that recognize copyright laws, the author or authors
|
||||
of this software dedicate any and all copyright interest in the
|
||||
software to the public domain. We make this dedication for the benefit
|
||||
of the public at large and to the detriment of our heirs and
|
||||
successors. We intend this dedication to be an overt act of
|
||||
relinquishment in perpetuity of all present and future rights to this
|
||||
software under copyright law.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
For more information, please refer to <https://unlicense.org>
|
||||
185
README.md
|
|
@ -1,185 +0,0 @@
|
|||
[](https://hackage.haskell.org/package/reanimate)
|
||||
[](https://stackage.org/lts/package/reanimate)
|
||||
[](https://stackage.org/nightly/package/reanimate)
|
||||
[](https://dev.azure.com/lemmih0612/reanimate/_build/latest?definitionId=2&branchName=master)
|
||||
[](https://reanimate.readthedocs.io/en/latest/?badge=latest)
|
||||

|
||||

|
||||
[](https://reanimate.github.io/reanimate/haddock.txt)
|
||||
[](https://hub.docker.com/repository/docker/reanimate/discord-bot)
|
||||
[](https://discord.gg/Qs28Dv6)
|
||||
|
||||
# Reanimate
|
||||
|
||||
Reanimate is a library for programmatically generating animations with a twist towards
|
||||
mathematics / 2D vector drawings. A lot of inspiration was drawn from 3b1b's manim library.
|
||||
|
||||
Reanimate aims at being a batteries-included way of gluing together different technologies: SVG as
|
||||
a universal image format, LaTeX for typesetting, ffmpeg for video encoding, inkscape/imagemagick
|
||||
for rasterization, potrace for vectorization, blender/povray for 3D graphics, and Haskell for
|
||||
scripting.
|
||||
|
||||
In more practical terms, reanimate is a library for turning code like this:
|
||||
|
||||
```haskell
|
||||
main = reanimate $ docEnv $ playThenReverseA drawCircle
|
||||
```
|
||||
|
||||
... into animations like this:
|
||||
|
||||
[](examples/doc_playThenReverseA.hs)
|
||||
|
||||
If you like what you see, boost reanimate's visibility with a star ⭐ or consider becoming a [sponsor ❤](https://github.com/sponsors/Lemmih).
|
||||
|
||||
# What is reanimate good at?
|
||||
|
||||
## Vector graphics and math
|
||||
[](examples/demo_tangent.hs)
|
||||
[](examples/tut_glue_fourier.hs)
|
||||
|
||||
## Mapping and tracing
|
||||
[](videos/map-projection/gif.hs)
|
||||
[](examples/tut_glue_potrace.hs)
|
||||
|
||||
## Mathematical typesetting and effects
|
||||
[](examples/tut_glue_latex.hs)
|
||||
[](examples/demo_stars.hs)
|
||||
|
||||
## 2D physics and 3D graphics
|
||||
[](examples/tut_glue_physics.hs)
|
||||
[](examples/tut_glue_povray.hs)
|
||||
|
||||
# Prerequisites
|
||||
|
||||
Reanimate is built using the Haskell Tool Stack. For installation instructions, see: https://docs.haskellstack.org/en/stable/README/
|
||||
|
||||
Optionally, you can install one or more of these programs to enable additional features:
|
||||
* [ffmpeg](https://www.ffmpeg.org/), enables rendering animations to video files.
|
||||
* [latex](https://www.latex-project.org/), enables mathematical typesetting.
|
||||
* [inkscape](https://inkscape.org/)/[imagemagick](https://imagemagick.org/index.php), enables SVG->PNG convertions.
|
||||
* [potrace](http://potrace.sourceforge.net/), enables PNG->SVG tracing.
|
||||
* [povray](https://www.povray.org/), enables raytracing.
|
||||
* [blender](https://www.blender.org/), enables 3D graphics.
|
||||
|
||||
I highly recommend that you install at least 'ffmpeg' and 'latex'.
|
||||
|
||||
# Getting started / Running an example
|
||||
|
||||
Reanimate offers stack templates for getting started with a minimal example and
|
||||
automatic code reloading. Running the commands below will put a one-line animation
|
||||
in the 'animate' folder and then display the animation in a browser window. You can
|
||||
then edit the animation source code and watch the animation update in real time:
|
||||
|
||||
```console
|
||||
$ stack new animate github:reanimate/plain
|
||||
$ cd animate/
|
||||
$ # both 'cabal repl' and 'stack repl' can be used here:
|
||||
$ cabal repl
|
||||
:cmd reanimateLive
|
||||
```
|
||||
|
||||
## Running examples from the repository
|
||||
|
||||
Reanimate has a large collection of small examples which are both used for regression testing
|
||||
and for GIFs in the API reference documentation. You can run these examples by first cloning the
|
||||
repository and then running the examples as if they were executables:
|
||||
|
||||
```console
|
||||
$ git clone https://github.com/reanimate/reanimate.git
|
||||
$ cd reanimate/
|
||||
$ stack build
|
||||
$ stack ./examples/doc_drawCircle.hs
|
||||
```
|
||||
|
||||
This should render the `doc_drawCircle` example in a new browser window. Automatic code reloading
|
||||
will not be enabled unless you run `:cmd reanimateLive` from a GHCi session.
|
||||
|
||||
|
||||
## Running examples from the repository using Cabal
|
||||
|
||||
It's also possible to use cabal instead of stack:
|
||||
|
||||
```console
|
||||
$ git clone https://github.com/reanimate/reanimate.git
|
||||
$ cd reanimate/
|
||||
$ cabal v2-build
|
||||
$ # Workaround for a cabal bug: https://github.com/haskell/cabal/issues/6235
|
||||
$ export reanimate_datadir=`pwd`
|
||||
$ cabal v2-exec -- runhaskell examples/doc_drawCircle.hs
|
||||
```
|
||||
|
||||
## Using Nix
|
||||
|
||||
If you'd rather use nix to build an environment with all of the system dependencies mentioned previously do:
|
||||
|
||||
```console
|
||||
$ git clone https://github.com/reanimate/reanimate.git
|
||||
$ cd reanimate/
|
||||
$ nix-shell
|
||||
[nix-shell:./reanimate]$ cabal v2-build --write-ghc-environment-files=always
|
||||
```
|
||||
|
||||
If you have cachix available run `cachix use cdodev` before you drop into the nix shell. This will significantly speed things up!
|
||||
|
||||
This will write a file in the working directory like
|
||||
`.ghc.environment.x86_64-linux-8.8.3` which will enable commands like `runhaskell`
|
||||
to pick up reanimate.
|
||||
|
||||
Now, still within the `nix-shell` you can run:
|
||||
|
||||
```console
|
||||
[nix-shell:./reanimate]$ reanimate_datadir=. runhaskell examples/doc_drawCircle.hs
|
||||
```
|
||||
|
||||
|
||||
# Documentation
|
||||
|
||||
* API reference: https://hackage.haskell.org/package/reanimate/docs/Reanimate.html
|
||||
* Core concepts: https://reanimate.readthedocs.io/en/latest/introduction.html
|
||||
* Design overview: https://reanimate.readthedocs.io/en/latest/glue_tut.html
|
||||
* N-Queens tutorial (somewhat dated, uses reanimate from October 2019): https://williamyaoh.com/posts/2020-05-31-reanimate-nqueens-tutorial.html
|
||||
* You can also ask questions in the discord channel: <https://discord.gg/Qs28Dv6>
|
||||
|
||||
# Features
|
||||
|
||||
- [x] Cross-platform. Official support for Linux, MacOS, and Windows.
|
||||
- [x] Well-documented. API [reference documentation](https://hackage.haskell.org/package/reanimate/docs/Reanimate.html) include GIFs to illustrate behavior, and in-depth tutorial/explanation articles are hosted on [readthedocs.io](https://reanimate.readthedocs.io/en/latest/).
|
||||
- [x] Advanced type-setting via LaTeX.
|
||||
- [x] Voice control: Align animation timings with a transcript.
|
||||
- [x] 3D graphics: Built-in support for integrating povray and blender.
|
||||
- [x] Mapping: Built-in support for GeoJSON and map projections.
|
||||
- [x] Online playground for toying with reanimate scripts.
|
||||
|
||||
# Roadmap
|
||||
|
||||
- Easy-to-use font selection when using latex/xelatex/luatex.
|
||||
- Polygon morphing framework with support for several algorithms, including: linear interpolation, as-rigid-as-possible interpolation, and intersection-free interpolation.
|
||||
- Built-in tools for creating presentations.
|
||||
|
||||
# Authors
|
||||
|
||||
* David Himmelstrup.
|
||||
* Jan Hrcek.
|
||||
|
||||
# License
|
||||
|
||||
This is free and unencumbered software released into the public domain.
|
||||
|
||||
Anyone is free to copy, modify, publish, use, compile, sell, or
|
||||
distribute this software, either in source code form or as a compiled
|
||||
binary, for any purpose, commercial or non-commercial, and by any
|
||||
means.
|
||||
|
||||
# Acknowledgments
|
||||
|
||||
* Huge thanks to 3b1b's [manim](https://github.com/3b1b/manim) which inspired this library.
|
||||
* Thanks to [svg-tree](https://github.com/Twinside/svg-tree) for their SVG library.
|
||||
* Thanks to [CthulhuDen/chiphunk](https://github.com/CthulhuDen/chiphunk) for making a 2D physics
|
||||
library easily available.
|
||||
* Thanks to [Peter Johnson](https://github.com/missinglink) for reserving the 'reanimate' organization on GitHub.
|
||||
|
||||
# YouTube
|
||||
|
||||
Completed animations are uploaded to the [Reanimated Science](https://www.youtube.com/channel/UCbZujyI7i6JbI-I0shPvDgg) channel.
|
||||
|
||||
Animation snippets are uploaded to the [Reanimated Science Shorts](https://www.youtube.com/channel/UCL7MwXLtQbhJeb6Ts3_HooA) channel.
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
* http://www.shadedrelief.com/natural3/pages/textures.html
|
||||
* https://www.solarsystemscope.com/textures/
|
||||
* https://cc0textures.com/
|
||||
* https://www.publicdomainpictures.net/en/index.php
|
||||
* https://www.naturalearthdata.com/
|
||||
* https://github.com/Flow-Based-Cartograms/go_cart
|
||||
2
Setup.hs
|
|
@ -1,2 +0,0 @@
|
|||
import Distribution.Simple
|
||||
main = defaultMain
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
# This is the complex Azure configuration, which is intended for use
|
||||
# on open source libraries which need compatibility across multiple GHC
|
||||
# versions, must work with cabal-install, and should be
|
||||
# cross-platform. For more information and other options, see:
|
||||
#
|
||||
# https://docs.haskellstack.org/en/stable/azure_ci/
|
||||
#
|
||||
# Copy these contents into the root directory of your Github project in a file
|
||||
# named azure-pipelines.yml
|
||||
#
|
||||
# For better organization, you split various jobs into seprate parts
|
||||
# and each of them are controlled via individual file.
|
||||
|
||||
trigger:
|
||||
- master
|
||||
|
||||
jobs:
|
||||
- template: ./.azure/azure-linux-template.yml
|
||||
parameters:
|
||||
name: Linux
|
||||
vmImage: ubuntu-latest
|
||||
os: linux
|
||||
|
||||
#- template: ./.azure/azure-osx-template.yml
|
||||
# parameters:
|
||||
# name: macOS
|
||||
# vmImage: macOS-11
|
||||
# os: osx
|
||||
|
||||
- template: ./.azure/azure-windows-template.yml
|
||||
parameters:
|
||||
name: Windows
|
||||
vmImage: windows-latest
|
||||
os: windows
|
||||
441
data/CIE_XYZ.csv
|
|
@ -1,441 +0,0 @@
|
|||
390,3.769647E-03,4.146161E-04,1.847260E-02
|
||||
391,4.532416E-03,5.028333E-04,2.221101E-02
|
||||
392,5.446553E-03,6.084991E-04,2.669819E-02
|
||||
393,6.538868E-03,7.344436E-04,3.206937E-02
|
||||
394,7.839699E-03,8.837389E-04,3.847832E-02
|
||||
395,9.382967E-03,1.059646E-03,4.609784E-02
|
||||
396,1.120608E-02,1.265532E-03,5.511953E-02
|
||||
397,1.334965E-02,1.504753E-03,6.575257E-02
|
||||
398,1.585690E-02,1.780493E-03,7.822113E-02
|
||||
399,1.877286E-02,2.095572E-03,9.276013E-02
|
||||
400,2.214302E-02,2.452194E-03,1.096090E-01
|
||||
401,2.601285E-02,2.852216E-03,1.290077E-01
|
||||
402,3.043036E-02,3.299115E-03,1.512047E-01
|
||||
403,3.544325E-02,3.797466E-03,1.764441E-01
|
||||
404,4.109640E-02,4.352768E-03,2.049517E-01
|
||||
405,4.742986E-02,4.971717E-03,2.369246E-01
|
||||
406,5.447394E-02,5.661014E-03,2.725123E-01
|
||||
407,6.223612E-02,6.421615E-03,3.117820E-01
|
||||
408,7.070048E-02,7.250312E-03,3.547064E-01
|
||||
409,7.982513E-02,8.140173E-03,4.011473E-01
|
||||
410,8.953803E-02,9.079860E-03,4.508369E-01
|
||||
411,9.974848E-02,1.005608E-02,5.034164E-01
|
||||
412,1.104019E-01,1.106456E-02,5.586361E-01
|
||||
413,1.214566E-01,1.210522E-02,6.162734E-01
|
||||
414,1.328741E-01,1.318014E-02,6.760982E-01
|
||||
415,1.446214E-01,1.429377E-02,7.378822E-01
|
||||
416,1.566468E-01,1.545004E-02,8.013019E-01
|
||||
417,1.687901E-01,1.664093E-02,8.655573E-01
|
||||
418,1.808328E-01,1.785302E-02,9.295791E-01
|
||||
419,1.925216E-01,1.907018E-02,9.921293E-01
|
||||
420,2.035729E-01,2.027369E-02,1.051821E+00
|
||||
421,2.137531E-01,2.144805E-02,1.107509E+00
|
||||
422,2.231348E-01,2.260041E-02,1.159527E+00
|
||||
423,2.319245E-01,2.374789E-02,1.208869E+00
|
||||
424,2.403892E-01,2.491247E-02,1.256834E+00
|
||||
425,2.488523E-01,2.612106E-02,1.305008E+00
|
||||
426,2.575896E-01,2.739923E-02,1.354758E+00
|
||||
427,2.664991E-01,2.874993E-02,1.405594E+00
|
||||
428,2.753532E-01,3.016909E-02,1.456414E+00
|
||||
429,2.838921E-01,3.165145E-02,1.505960E+00
|
||||
430,2.918246E-01,3.319038E-02,1.552826E+00
|
||||
431,2.989200E-01,3.477912E-02,1.595902E+00
|
||||
432,3.052993E-01,3.641495E-02,1.635768E+00
|
||||
433,3.112031E-01,3.809569E-02,1.673573E+00
|
||||
434,3.169047E-01,3.981843E-02,1.710604E+00
|
||||
435,3.227087E-01,4.157940E-02,1.748280E+00
|
||||
436,3.288194E-01,4.337098E-02,1.787504E+00
|
||||
437,3.349242E-01,4.517180E-02,1.826609E+00
|
||||
438,3.405452E-01,4.695420E-02,1.863108E+00
|
||||
439,3.451688E-01,4.868718E-02,1.894332E+00
|
||||
440,3.482554E-01,5.033657E-02,1.917479E+00
|
||||
441,3.494153E-01,5.187611E-02,1.930529E+00
|
||||
442,3.489075E-01,5.332218E-02,1.934819E+00
|
||||
443,3.471746E-01,5.470603E-02,1.932650E+00
|
||||
444,3.446705E-01,5.606335E-02,1.926395E+00
|
||||
445,3.418483E-01,5.743393E-02,1.918437E+00
|
||||
446,3.390240E-01,5.885107E-02,1.910430E+00
|
||||
447,3.359926E-01,6.030809E-02,1.901224E+00
|
||||
448,3.324276E-01,6.178644E-02,1.889000E+00
|
||||
449,3.280157E-01,6.326570E-02,1.871996E+00
|
||||
450,3.224637E-01,6.472352E-02,1.848545E+00
|
||||
451,3.156225E-01,6.614749E-02,1.817792E+00
|
||||
452,3.078201E-01,6.757256E-02,1.781627E+00
|
||||
453,2.994771E-01,6.904928E-02,1.742514E+00
|
||||
454,2.909776E-01,7.063280E-02,1.702749E+00
|
||||
455,2.826646E-01,7.238339E-02,1.664439E+00
|
||||
456,2.747962E-01,7.435960E-02,1.629207E+00
|
||||
457,2.674312E-01,7.659383E-02,1.597360E+00
|
||||
458,2.605847E-01,7.911436E-02,1.568896E+00
|
||||
459,2.542749E-01,8.195345E-02,1.543823E+00
|
||||
460,2.485254E-01,8.514816E-02,1.522157E+00
|
||||
461,2.433039E-01,8.872657E-02,1.503611E+00
|
||||
462,2.383414E-01,9.266008E-02,1.486673E+00
|
||||
463,2.333253E-01,9.689723E-02,1.469595E+00
|
||||
464,2.279619E-01,1.013746E-01,1.450709E+00
|
||||
465,2.219781E-01,1.060145E-01,1.428440E+00
|
||||
466,2.151735E-01,1.107377E-01,1.401587E+00
|
||||
467,2.075619E-01,1.155111E-01,1.370094E+00
|
||||
468,1.992183E-01,1.203122E-01,1.334220E+00
|
||||
469,1.902290E-01,1.251161E-01,1.294275E+00
|
||||
470,1.806905E-01,1.298957E-01,1.250610E+00
|
||||
471,1.707154E-01,1.346299E-01,1.203696E+00
|
||||
472,1.604471E-01,1.393309E-01,1.154316E+00
|
||||
473,1.500244E-01,1.440235E-01,1.103284E+00
|
||||
474,1.395705E-01,1.487372E-01,1.051347E+00
|
||||
475,1.291920E-01,1.535066E-01,9.991789E-01
|
||||
476,1.189859E-01,1.583644E-01,9.473958E-01
|
||||
477,1.090615E-01,1.633199E-01,8.966222E-01
|
||||
478,9.951424E-02,1.683761E-01,8.473981E-01
|
||||
479,9.041850E-02,1.735365E-01,8.001576E-01
|
||||
480,8.182895E-02,1.788048E-01,7.552379E-01
|
||||
481,7.376817E-02,1.841819E-01,7.127879E-01
|
||||
482,6.619477E-02,1.896559E-01,6.725198E-01
|
||||
483,5.906380E-02,1.952101E-01,6.340976E-01
|
||||
484,5.234242E-02,2.008259E-01,5.972433E-01
|
||||
485,4.600865E-02,2.064828E-01,5.617313E-01
|
||||
486,4.006154E-02,2.121826E-01,5.274921E-01
|
||||
487,3.454373E-02,2.180279E-01,4.948809E-01
|
||||
488,2.949091E-02,2.241586E-01,4.642586E-01
|
||||
489,2.492140E-02,2.307302E-01,4.358841E-01
|
||||
490,2.083981E-02,2.379160E-01,4.099313E-01
|
||||
491,1.723591E-02,2.458706E-01,3.864261E-01
|
||||
492,1.407924E-02,2.546023E-01,3.650566E-01
|
||||
493,1.134516E-02,2.640760E-01,3.454812E-01
|
||||
494,9.019658E-03,2.742490E-01,3.274095E-01
|
||||
495,7.097731E-03,2.850680E-01,3.105939E-01
|
||||
496,5.571145E-03,2.964837E-01,2.948102E-01
|
||||
497,4.394566E-03,3.085010E-01,2.798194E-01
|
||||
498,3.516303E-03,3.211393E-01,2.654100E-01
|
||||
499,2.887638E-03,3.344175E-01,2.514084E-01
|
||||
500,2.461588E-03,3.483536E-01,2.376753E-01
|
||||
501,2.206348E-03,3.629601E-01,2.241211E-01
|
||||
502,2.149559E-03,3.782275E-01,2.107484E-01
|
||||
503,2.337091E-03,3.941359E-01,1.975839E-01
|
||||
504,2.818931E-03,4.106582E-01,1.846574E-01
|
||||
505,3.649178E-03,4.277595E-01,1.720018E-01
|
||||
506,4.891359E-03,4.453993E-01,1.596918E-01
|
||||
507,6.629364E-03,4.635396E-01,1.479415E-01
|
||||
508,8.942902E-03,4.821376E-01,1.369428E-01
|
||||
509,1.190224E-02,5.011430E-01,1.268279E-01
|
||||
510,1.556989E-02,5.204972E-01,1.176796E-01
|
||||
511,1.997668E-02,5.401387E-01,1.094970E-01
|
||||
512,2.504698E-02,5.600208E-01,1.020943E-01
|
||||
513,3.067530E-02,5.800972E-01,9.527993E-02
|
||||
514,3.674999E-02,6.003172E-01,8.890075E-02
|
||||
515,4.315171E-02,6.206256E-01,8.283548E-02
|
||||
516,4.978584E-02,6.409398E-01,7.700982E-02
|
||||
517,5.668554E-02,6.610772E-01,7.144001E-02
|
||||
518,6.391651E-02,6.808134E-01,6.615436E-02
|
||||
519,7.154352E-02,6.999044E-01,6.117199E-02
|
||||
520,7.962917E-02,7.180890E-01,5.650407E-02
|
||||
521,8.821473E-02,7.351593E-01,5.215121E-02
|
||||
522,9.726978E-02,7.511821E-01,4.809566E-02
|
||||
523,1.067504E-01,7.663143E-01,4.431720E-02
|
||||
524,1.166192E-01,7.807352E-01,4.079734E-02
|
||||
525,1.268468E-01,7.946448E-01,3.751912E-02
|
||||
526,1.374060E-01,8.082074E-01,3.446846E-02
|
||||
527,1.482471E-01,8.213817E-01,3.163764E-02
|
||||
528,1.593076E-01,8.340701E-01,2.901901E-02
|
||||
529,1.705181E-01,8.461711E-01,2.660364E-02
|
||||
530,1.818026E-01,8.575799E-01,2.438164E-02
|
||||
531,1.931090E-01,8.682408E-01,2.234097E-02
|
||||
532,2.045085E-01,8.783061E-01,2.046415E-02
|
||||
533,2.161166E-01,8.879907E-01,1.873456E-02
|
||||
534,2.280650E-01,8.975211E-01,1.713788E-02
|
||||
535,2.405015E-01,9.071347E-01,1.566174E-02
|
||||
536,2.535441E-01,9.169947E-01,1.429644E-02
|
||||
537,2.671300E-01,9.269295E-01,1.303702E-02
|
||||
538,2.811351E-01,9.366731E-01,1.187897E-02
|
||||
539,2.954164E-01,9.459482E-01,1.081725E-02
|
||||
540,3.098117E-01,9.544675E-01,9.846470E-03
|
||||
541,3.241678E-01,9.619834E-01,8.960687E-03
|
||||
542,3.384319E-01,9.684390E-01,8.152811E-03
|
||||
543,3.525786E-01,9.738289E-01,7.416025E-03
|
||||
544,3.665839E-01,9.781519E-01,6.744115E-03
|
||||
545,3.804244E-01,9.814106E-01,6.131421E-03
|
||||
546,3.940988E-01,9.836669E-01,5.572778E-03
|
||||
547,4.076972E-01,9.852081E-01,5.063463E-03
|
||||
548,4.213484E-01,9.863813E-01,4.599169E-03
|
||||
549,4.352003E-01,9.875357E-01,4.175971E-03
|
||||
550,4.494206E-01,9.890228E-01,3.790291E-03
|
||||
551,4.641616E-01,9.910811E-01,3.438952E-03
|
||||
552,4.794395E-01,9.934913E-01,3.119341E-03
|
||||
553,4.952180E-01,9.959172E-01,2.829038E-03
|
||||
554,5.114395E-01,9.980205E-01,2.565722E-03
|
||||
555,5.280233E-01,9.994608E-01,2.327186E-03
|
||||
556,5.448696E-01,9.999930E-01,2.111280E-03
|
||||
557,5.618898E-01,9.997557E-01,1.915766E-03
|
||||
558,5.790137E-01,9.989839E-01,1.738589E-03
|
||||
559,5.961882E-01,9.979123E-01,1.577920E-03
|
||||
560,6.133784E-01,9.967737E-01,1.432128E-03
|
||||
561,6.305897E-01,9.957356E-01,1.299781E-03
|
||||
562,6.479223E-01,9.947115E-01,1.179667E-03
|
||||
563,6.654866E-01,9.935534E-01,1.070694E-03
|
||||
564,6.833782E-01,9.921156E-01,9.718623E-04
|
||||
565,7.016774E-01,9.902549E-01,8.822531E-04
|
||||
566,7.204110E-01,9.878596E-01,8.010231E-04
|
||||
567,7.394495E-01,9.849324E-01,7.273884E-04
|
||||
568,7.586285E-01,9.815036E-01,6.606347E-04
|
||||
569,7.777885E-01,9.776035E-01,6.001146E-04
|
||||
570,7.967750E-01,9.732611E-01,5.452416E-04
|
||||
571,8.154530E-01,9.684764E-01,4.954847E-04
|
||||
572,8.337389E-01,9.631369E-01,4.503642E-04
|
||||
573,8.515493E-01,9.571062E-01,4.094455E-04
|
||||
574,8.687862E-01,9.502540E-01,3.723345E-04
|
||||
575,8.853376E-01,9.424569E-01,3.386739E-04
|
||||
576,9.011588E-01,9.336897E-01,3.081396E-04
|
||||
577,9.165278E-01,9.242893E-01,2.804370E-04
|
||||
578,9.318245E-01,9.146707E-01,2.552996E-04
|
||||
579,9.474524E-01,9.052333E-01,2.324859E-04
|
||||
580,9.638388E-01,8.963613E-01,2.117772E-04
|
||||
581,9.812596E-01,8.883069E-01,1.929758E-04
|
||||
582,9.992953E-01,8.808462E-01,1.759024E-04
|
||||
583,1.017343E+00,8.736445E-01,1.603947E-04
|
||||
584,1.034790E+00,8.663755E-01,1.463059E-04
|
||||
585,1.051011E+00,8.587203E-01,1.335031E-04
|
||||
586,1.065522E+00,8.504295E-01,1.218660E-04
|
||||
587,1.078421E+00,8.415047E-01,1.112857E-04
|
||||
588,1.089944E+00,8.320109E-01,1.016634E-04
|
||||
589,1.100320E+00,8.220154E-01,9.291003E-05
|
||||
590,1.109767E+00,8.115868E-01,8.494468E-05
|
||||
591,1.118438E+00,8.007874E-01,7.769425E-05
|
||||
592,1.126266E+00,7.896515E-01,7.109247E-05
|
||||
593,1.133138E+00,7.782053E-01,6.507936E-05
|
||||
594,1.138952E+00,7.664733E-01,5.960061E-05
|
||||
595,1.143620E+00,7.544785E-01,5.460706E-05
|
||||
596,1.147095E+00,7.422473E-01,5.005417E-05
|
||||
597,1.149464E+00,7.298229E-01,4.590157E-05
|
||||
598,1.150838E+00,7.172525E-01,4.211268E-05
|
||||
599,1.151326E+00,7.045818E-01,3.865437E-05
|
||||
600,1.151033E+00,6.918553E-01,3.549661E-05
|
||||
601,1.150002E+00,6.791009E-01,3.261220E-05
|
||||
602,1.148061E+00,6.662846E-01,2.997643E-05
|
||||
603,1.144998E+00,6.533595E-01,2.756693E-05
|
||||
604,1.140622E+00,6.402807E-01,2.536339E-05
|
||||
605,1.134757E+00,6.270066E-01,2.334738E-05
|
||||
606,1.127298E+00,6.135148E-01,2.150221E-05
|
||||
607,1.118342E+00,5.998494E-01,1.981268E-05
|
||||
608,1.108033E+00,5.860682E-01,1.826500E-05
|
||||
609,1.096515E+00,5.722261E-01,1.684667E-05
|
||||
610,1.083928E+00,5.583746E-01,1.554631E-05
|
||||
611,1.070387E+00,5.445535E-01,1.435360E-05
|
||||
612,1.055934E+00,5.307673E-01,1.325915E-05
|
||||
613,1.040592E+00,5.170130E-01,1.225443E-05
|
||||
614,1.024385E+00,5.032889E-01,1.133169E-05
|
||||
615,1.007344E+00,4.895950E-01,1.048387E-05
|
||||
616,9.895268E-01,4.759442E-01,0.000000E+00
|
||||
617,9.711213E-01,4.623958E-01,0.000000E+00
|
||||
618,9.523257E-01,4.490154E-01,0.000000E+00
|
||||
619,9.333248E-01,4.358622E-01,0.000000E+00
|
||||
620,9.142877E-01,4.229897E-01,0.000000E+00
|
||||
621,8.952798E-01,4.104152E-01,0.000000E+00
|
||||
622,8.760157E-01,3.980356E-01,0.000000E+00
|
||||
623,8.561607E-01,3.857300E-01,0.000000E+00
|
||||
624,8.354235E-01,3.733907E-01,0.000000E+00
|
||||
625,8.135565E-01,3.609245E-01,0.000000E+00
|
||||
626,7.904565E-01,3.482860E-01,0.000000E+00
|
||||
627,7.664364E-01,3.355702E-01,0.000000E+00
|
||||
628,7.418777E-01,3.228963E-01,0.000000E+00
|
||||
629,7.171219E-01,3.103704E-01,0.000000E+00
|
||||
630,6.924717E-01,2.980865E-01,0.000000E+00
|
||||
631,6.681600E-01,2.861160E-01,0.000000E+00
|
||||
632,6.442697E-01,2.744822E-01,0.000000E+00
|
||||
633,6.208450E-01,2.631953E-01,0.000000E+00
|
||||
634,5.979243E-01,2.522628E-01,0.000000E+00
|
||||
635,5.755410E-01,2.416902E-01,0.000000E+00
|
||||
636,5.537296E-01,2.314809E-01,0.000000E+00
|
||||
637,5.325412E-01,2.216378E-01,0.000000E+00
|
||||
638,5.120218E-01,2.121622E-01,0.000000E+00
|
||||
639,4.922070E-01,2.030542E-01,0.000000E+00
|
||||
640,4.731224E-01,1.943124E-01,0.000000E+00
|
||||
641,4.547417E-01,1.859227E-01,0.000000E+00
|
||||
642,4.368719E-01,1.778274E-01,0.000000E+00
|
||||
643,4.193121E-01,1.699654E-01,0.000000E+00
|
||||
644,4.018980E-01,1.622841E-01,0.000000E+00
|
||||
645,3.844986E-01,1.547397E-01,0.000000E+00
|
||||
646,3.670592E-01,1.473081E-01,0.000000E+00
|
||||
647,3.497167E-01,1.400169E-01,0.000000E+00
|
||||
648,3.326305E-01,1.329013E-01,0.000000E+00
|
||||
649,3.159341E-01,1.259913E-01,0.000000E+00
|
||||
650,2.997374E-01,1.193120E-01,0.000000E+00
|
||||
651,2.841189E-01,1.128820E-01,0.000000E+00
|
||||
652,2.691053E-01,1.067113E-01,0.000000E+00
|
||||
653,2.547077E-01,1.008052E-01,0.000000E+00
|
||||
654,2.409319E-01,9.516653E-02,0.000000E+00
|
||||
655,2.277792E-01,8.979594E-02,0.000000E+00
|
||||
656,2.152431E-01,8.469044E-02,0.000000E+00
|
||||
657,2.033010E-01,7.984009E-02,0.000000E+00
|
||||
658,1.919276E-01,7.523372E-02,0.000000E+00
|
||||
659,1.810987E-01,7.086061E-02,0.000000E+00
|
||||
660,1.707914E-01,6.671045E-02,0.000000E+00
|
||||
661,1.609842E-01,6.277360E-02,0.000000E+00
|
||||
662,1.516577E-01,5.904179E-02,0.000000E+00
|
||||
663,1.427936E-01,5.550703E-02,0.000000E+00
|
||||
664,1.343737E-01,5.216139E-02,0.000000E+00
|
||||
665,1.263808E-01,4.899699E-02,0.000000E+00
|
||||
666,1.187979E-01,4.600578E-02,0.000000E+00
|
||||
667,1.116088E-01,4.317885E-02,0.000000E+00
|
||||
668,1.047975E-01,4.050755E-02,0.000000E+00
|
||||
669,9.834835E-02,3.798376E-02,0.000000E+00
|
||||
670,9.224597E-02,3.559982E-02,0.000000E+00
|
||||
671,8.647506E-02,3.334856E-02,0.000000E+00
|
||||
672,8.101986E-02,3.122332E-02,0.000000E+00
|
||||
673,7.586514E-02,2.921780E-02,0.000000E+00
|
||||
674,7.099633E-02,2.732601E-02,0.000000E+00
|
||||
675,6.639960E-02,2.554223E-02,0.000000E+00
|
||||
676,6.206225E-02,2.386121E-02,0.000000E+00
|
||||
677,5.797409E-02,2.227859E-02,0.000000E+00
|
||||
678,5.412533E-02,2.079020E-02,0.000000E+00
|
||||
679,5.050600E-02,1.939185E-02,0.000000E+00
|
||||
680,4.710606E-02,1.807939E-02,0.000000E+00
|
||||
681,4.391411E-02,1.684817E-02,0.000000E+00
|
||||
682,4.091411E-02,1.569188E-02,0.000000E+00
|
||||
683,3.809067E-02,1.460446E-02,0.000000E+00
|
||||
684,3.543034E-02,1.358062E-02,0.000000E+00
|
||||
685,3.292138E-02,1.261573E-02,0.000000E+00
|
||||
686,3.055672E-02,1.170696E-02,0.000000E+00
|
||||
687,2.834146E-02,1.085608E-02,0.000000E+00
|
||||
688,2.628033E-02,1.006476E-02,0.000000E+00
|
||||
689,2.437465E-02,9.333376E-03,0.000000E+00
|
||||
690,2.262306E-02,8.661284E-03,0.000000E+00
|
||||
691,2.101935E-02,8.046048E-03,0.000000E+00
|
||||
692,1.954647E-02,7.481130E-03,0.000000E+00
|
||||
693,1.818727E-02,6.959987E-03,0.000000E+00
|
||||
694,1.692727E-02,6.477070E-03,0.000000E+00
|
||||
695,1.575417E-02,6.027677E-03,0.000000E+00
|
||||
696,1.465854E-02,5.608169E-03,0.000000E+00
|
||||
697,1.363571E-02,5.216691E-03,0.000000E+00
|
||||
698,1.268205E-02,4.851785E-03,0.000000E+00
|
||||
699,1.179394E-02,4.512008E-03,0.000000E+00
|
||||
700,1.096778E-02,4.195941E-03,0.000000E+00
|
||||
701,1.019964E-02,3.902057E-03,0.000000E+00
|
||||
702,9.484317E-03,3.628371E-03,0.000000E+00
|
||||
703,8.816851E-03,3.373005E-03,0.000000E+00
|
||||
704,8.192921E-03,3.134315E-03,0.000000E+00
|
||||
705,7.608750E-03,2.910864E-03,0.000000E+00
|
||||
706,7.061391E-03,2.701528E-03,0.000000E+00
|
||||
707,6.549509E-03,2.505796E-03,0.000000E+00
|
||||
708,6.071970E-03,2.323231E-03,0.000000E+00
|
||||
709,5.627476E-03,2.153333E-03,0.000000E+00
|
||||
710,5.214608E-03,1.995557E-03,0.000000E+00
|
||||
711,4.831848E-03,1.849316E-03,0.000000E+00
|
||||
712,4.477579E-03,1.713976E-03,0.000000E+00
|
||||
713,4.150166E-03,1.588899E-03,0.000000E+00
|
||||
714,3.847988E-03,1.473453E-03,0.000000E+00
|
||||
715,3.569452E-03,1.367022E-03,0.000000E+00
|
||||
716,3.312857E-03,1.268954E-03,0.000000E+00
|
||||
717,3.076022E-03,1.178421E-03,0.000000E+00
|
||||
718,2.856894E-03,1.094644E-03,0.000000E+00
|
||||
719,2.653681E-03,1.016943E-03,0.000000E+00
|
||||
720,2.464821E-03,9.447269E-04,0.000000E+00
|
||||
721,2.289060E-03,8.775171E-04,0.000000E+00
|
||||
722,2.125694E-03,8.150438E-04,0.000000E+00
|
||||
723,1.974121E-03,7.570755E-04,0.000000E+00
|
||||
724,1.833723E-03,7.033755E-04,0.000000E+00
|
||||
725,1.703876E-03,6.537050E-04,0.000000E+00
|
||||
726,1.583904E-03,6.078048E-04,0.000000E+00
|
||||
727,1.472939E-03,5.653435E-04,0.000000E+00
|
||||
728,1.370151E-03,5.260046E-04,0.000000E+00
|
||||
729,1.274803E-03,4.895061E-04,0.000000E+00
|
||||
730,1.186238E-03,4.555970E-04,0.000000E+00
|
||||
731,1.103871E-03,4.240548E-04,0.000000E+00
|
||||
732,1.027194E-03,3.946860E-04,0.000000E+00
|
||||
733,9.557493E-04,3.673178E-04,0.000000E+00
|
||||
734,8.891262E-04,3.417941E-04,0.000000E+00
|
||||
735,8.269535E-04,3.179738E-04,0.000000E+00
|
||||
736,7.689351E-04,2.957441E-04,0.000000E+00
|
||||
737,7.149425E-04,2.750558E-04,0.000000E+00
|
||||
738,6.648590E-04,2.558640E-04,0.000000E+00
|
||||
739,6.185421E-04,2.381142E-04,0.000000E+00
|
||||
740,5.758303E-04,2.217445E-04,0.000000E+00
|
||||
741,5.365046E-04,2.066711E-04,0.000000E+00
|
||||
742,5.001842E-04,1.927474E-04,0.000000E+00
|
||||
743,4.665005E-04,1.798315E-04,0.000000E+00
|
||||
744,4.351386E-04,1.678023E-04,0.000000E+00
|
||||
745,4.058303E-04,1.565566E-04,0.000000E+00
|
||||
746,3.783733E-04,1.460168E-04,0.000000E+00
|
||||
747,3.526892E-04,1.361535E-04,0.000000E+00
|
||||
748,3.287199E-04,1.269451E-04,0.000000E+00
|
||||
749,3.063998E-04,1.183671E-04,0.000000E+00
|
||||
750,2.856577E-04,1.103928E-04,0.000000E+00
|
||||
751,2.664108E-04,1.029908E-04,0.000000E+00
|
||||
752,2.485462E-04,9.611836E-05,0.000000E+00
|
||||
753,2.319529E-04,8.973323E-05,0.000000E+00
|
||||
754,2.165300E-04,8.379694E-05,0.000000E+00
|
||||
755,2.021853E-04,7.827442E-05,0.000000E+00
|
||||
756,1.888338E-04,7.313312E-05,0.000000E+00
|
||||
757,1.763935E-04,6.834142E-05,0.000000E+00
|
||||
758,1.647895E-04,6.387035E-05,0.000000E+00
|
||||
759,1.539542E-04,5.969389E-05,0.000000E+00
|
||||
760,1.438270E-04,5.578862E-05,0.000000E+00
|
||||
761,1.343572E-04,5.213509E-05,0.000000E+00
|
||||
762,1.255141E-04,4.872179E-05,0.000000E+00
|
||||
763,1.172706E-04,4.553845E-05,0.000000E+00
|
||||
764,1.095983E-04,4.257443E-05,0.000000E+00
|
||||
765,1.024685E-04,3.981884E-05,0.000000E+00
|
||||
766,9.584715E-05,3.725877E-05,0.000000E+00
|
||||
767,8.968316E-05,3.487467E-05,0.000000E+00
|
||||
768,8.392734E-05,3.264765E-05,0.000000E+00
|
||||
769,7.853708E-05,3.056140E-05,0.000000E+00
|
||||
770,7.347551E-05,2.860175E-05,0.000000E+00
|
||||
771,6.871576E-05,2.675841E-05,0.000000E+00
|
||||
772,6.425257E-05,2.502943E-05,0.000000E+00
|
||||
773,6.008292E-05,2.341373E-05,0.000000E+00
|
||||
774,5.620098E-05,2.190914E-05,0.000000E+00
|
||||
775,5.259870E-05,2.051259E-05,0.000000E+00
|
||||
776,4.926279E-05,1.921902E-05,0.000000E+00
|
||||
777,4.616623E-05,1.801796E-05,0.000000E+00
|
||||
778,4.328212E-05,1.689899E-05,0.000000E+00
|
||||
779,4.058715E-05,1.585309E-05,0.000000E+00
|
||||
780,3.806114E-05,1.487243E-05,0.000000E+00
|
||||
781,3.568818E-05,1.395085E-05,0.000000E+00
|
||||
782,3.346023E-05,1.308528E-05,0.000000E+00
|
||||
783,3.137090E-05,1.227327E-05,0.000000E+00
|
||||
784,2.941371E-05,1.151233E-05,0.000000E+00
|
||||
785,2.758222E-05,1.080001E-05,0.000000E+00
|
||||
786,2.586951E-05,1.013364E-05,0.000000E+00
|
||||
787,2.426701E-05,9.509919E-06,0.000000E+00
|
||||
788,2.276639E-05,8.925630E-06,0.000000E+00
|
||||
789,2.136009E-05,8.377852E-06,0.000000E+00
|
||||
790,2.004122E-05,7.863920E-06,0.000000E+00
|
||||
791,1.880380E-05,7.381539E-06,0.000000E+00
|
||||
792,1.764358E-05,6.929096E-06,0.000000E+00
|
||||
793,1.655671E-05,6.505136E-06,0.000000E+00
|
||||
794,1.553939E-05,6.108221E-06,0.000000E+00
|
||||
795,1.458792E-05,5.736935E-06,0.000000E+00
|
||||
796,1.369853E-05,5.389831E-06,0.000000E+00
|
||||
797,1.286705E-05,5.065269E-06,0.000000E+00
|
||||
798,1.208947E-05,4.761667E-06,0.000000E+00
|
||||
799,1.136207E-05,4.477561E-06,0.000000E+00
|
||||
800,1.068141E-05,4.211597E-06,0.000000E+00
|
||||
801,1.004411E-05,3.962457E-06,0.000000E+00
|
||||
802,9.446399E-06,3.728674E-06,0.000000E+00
|
||||
803,8.884754E-06,3.508881E-06,0.000000E+00
|
||||
804,8.356050E-06,3.301868E-06,0.000000E+00
|
||||
805,7.857521E-06,3.106561E-06,0.000000E+00
|
||||
806,7.386996E-06,2.922119E-06,0.000000E+00
|
||||
807,6.943576E-06,2.748208E-06,0.000000E+00
|
||||
808,6.526548E-06,2.584560E-06,0.000000E+00
|
||||
809,6.135087E-06,2.430867E-06,0.000000E+00
|
||||
810,5.768284E-06,2.286786E-06,0.000000E+00
|
||||
811,5.425069E-06,2.151905E-06,0.000000E+00
|
||||
812,5.103974E-06,2.025656E-06,0.000000E+00
|
||||
813,4.803525E-06,1.907464E-06,0.000000E+00
|
||||
814,4.522350E-06,1.796794E-06,0.000000E+00
|
||||
815,4.259166E-06,1.693147E-06,0.000000E+00
|
||||
816,4.012715E-06,1.596032E-06,0.000000E+00
|
||||
817,3.781597E-06,1.504903E-06,0.000000E+00
|
||||
818,3.564496E-06,1.419245E-06,0.000000E+00
|
||||
819,3.360236E-06,1.338600E-06,0.000000E+00
|
||||
820,3.167765E-06,1.262556E-06,0.000000E+00
|
||||
821,2.986206E-06,1.190771E-06,0.000000E+00
|
||||
822,2.814999E-06,1.123031E-06,0.000000E+00
|
||||
823,2.653663E-06,1.059151E-06,0.000000E+00
|
||||
824,2.501725E-06,9.989507E-07,0.000000E+00
|
||||
825,2.358723E-06,9.422514E-07,0.000000E+00
|
||||
826,2.224206E-06,8.888804E-07,0.000000E+00
|
||||
827,2.097737E-06,8.386690E-07,0.000000E+00
|
||||
828,1.978894E-06,7.914539E-07,0.000000E+00
|
||||
829,1.867268E-06,7.470770E-07,0.000000E+00
|
||||
830,1.762465E-06,7.053860E-07,0.000000E+00
|
||||
|
441
data/CIExyz.csv
|
|
@ -1,441 +0,0 @@
|
|||
390,0.16638,0.01830,0.81532
|
||||
391,0.16635,0.01846,0.81519
|
||||
392,0.16629,0.01858,0.81513
|
||||
393,0.16620,0.01867,0.81513
|
||||
394,0.16609,0.01872,0.81519
|
||||
395,0.16595,0.01874,0.81531
|
||||
396,0.16579,0.01872,0.81548
|
||||
397,0.16561,0.01867,0.81572
|
||||
398,0.16542,0.01857,0.81601
|
||||
399,0.16521,0.01844,0.81635
|
||||
400,0.16499,0.01827,0.81673
|
||||
401,0.16477,0.01807,0.81716
|
||||
402,0.16455,0.01784,0.81761
|
||||
403,0.16433,0.01761,0.81806
|
||||
404,0.16412,0.01738,0.81849
|
||||
405,0.16393,0.01718,0.81888
|
||||
406,0.16376,0.01702,0.81922
|
||||
407,0.16359,0.01688,0.81953
|
||||
408,0.16341,0.01676,0.81983
|
||||
409,0.16320,0.01664,0.82015
|
||||
410,0.16296,0.01653,0.82052
|
||||
411,0.16266,0.01640,0.82094
|
||||
412,0.16233,0.01627,0.82140
|
||||
413,0.16198,0.01614,0.82188
|
||||
414,0.16162,0.01603,0.82235
|
||||
415,0.16126,0.01594,0.82280
|
||||
416,0.16093,0.01587,0.82320
|
||||
417,0.16060,0.01583,0.82357
|
||||
418,0.16028,0.01582,0.82390
|
||||
419,0.15994,0.01584,0.82422
|
||||
420,0.15958,0.01589,0.82453
|
||||
421,0.15920,0.01597,0.82483
|
||||
422,0.15879,0.01608,0.82513
|
||||
423,0.15836,0.01622,0.82542
|
||||
424,0.15793,0.01637,0.82570
|
||||
425,0.15750,0.01653,0.82596
|
||||
426,0.15709,0.01671,0.82620
|
||||
427,0.15669,0.01690,0.82641
|
||||
428,0.15628,0.01712,0.82660
|
||||
429,0.15586,0.01738,0.82677
|
||||
430,0.15540,0.01767,0.82692
|
||||
431,0.15491,0.01802,0.82706
|
||||
432,0.15439,0.01841,0.82720
|
||||
433,0.15384,0.01883,0.82733
|
||||
434,0.15329,0.01926,0.82745
|
||||
435,0.15276,0.01968,0.82756
|
||||
436,0.15225,0.02008,0.82767
|
||||
437,0.15178,0.02047,0.82775
|
||||
438,0.15131,0.02086,0.82782
|
||||
439,0.15085,0.02128,0.82787
|
||||
440,0.15036,0.02173,0.82790
|
||||
441,0.14985,0.02225,0.82791
|
||||
442,0.14929,0.02282,0.82789
|
||||
443,0.14871,0.02343,0.82785
|
||||
444,0.14811,0.02409,0.82780
|
||||
445,0.14749,0.02478,0.82773
|
||||
446,0.14687,0.02550,0.82763
|
||||
447,0.14624,0.02625,0.82751
|
||||
448,0.14560,0.02706,0.82734
|
||||
449,0.14493,0.02795,0.82712
|
||||
450,0.14423,0.02895,0.82682
|
||||
451,0.14349,0.03007,0.82643
|
||||
452,0.14271,0.03133,0.82597
|
||||
453,0.14186,0.03271,0.82543
|
||||
454,0.14095,0.03422,0.82483
|
||||
455,0.13997,0.03584,0.82419
|
||||
456,0.13890,0.03759,0.82351
|
||||
457,0.13775,0.03945,0.82279
|
||||
458,0.13653,0.04145,0.82202
|
||||
459,0.13525,0.04359,0.82116
|
||||
460,0.13392,0.04588,0.82020
|
||||
461,0.13254,0.04834,0.81912
|
||||
462,0.13112,0.05098,0.81790
|
||||
463,0.12964,0.05384,0.81652
|
||||
464,0.12807,0.05695,0.81498
|
||||
465,0.12638,0.06036,0.81326
|
||||
466,0.12456,0.06410,0.81134
|
||||
467,0.12259,0.06822,0.80919
|
||||
468,0.12046,0.07275,0.80678
|
||||
469,0.11818,0.07773,0.80409
|
||||
470,0.11574,0.08320,0.80106
|
||||
471,0.11313,0.08922,0.79766
|
||||
472,0.11034,0.09582,0.79384
|
||||
473,0.10736,0.10307,0.78956
|
||||
474,0.10418,0.11103,0.78479
|
||||
475,0.10078,0.11975,0.77947
|
||||
476,0.09715,0.12930,0.77354
|
||||
477,0.09329,0.13971,0.76700
|
||||
478,0.08923,0.15097,0.75980
|
||||
479,0.08497,0.16308,0.75195
|
||||
480,0.08055,0.17601,0.74344
|
||||
481,0.07599,0.18973,0.73427
|
||||
482,0.07130,0.20429,0.72441
|
||||
483,0.06649,0.21974,0.71378
|
||||
484,0.06155,0.23615,0.70230
|
||||
485,0.05651,0.25359,0.68990
|
||||
486,0.05138,0.27212,0.67650
|
||||
487,0.04622,0.29169,0.66209
|
||||
488,0.04108,0.31224,0.64668
|
||||
489,0.03604,0.33365,0.63031
|
||||
490,0.03117,0.35580,0.61304
|
||||
491,0.02654,0.37853,0.59493
|
||||
492,0.02222,0.40175,0.57604
|
||||
493,0.01827,0.42531,0.55642
|
||||
494,0.01477,0.44909,0.53614
|
||||
495,0.01178,0.47294,0.51529
|
||||
496,0.00933,0.49673,0.49393
|
||||
497,0.00741,0.52049,0.47210
|
||||
498,0.00596,0.54424,0.44980
|
||||
499,0.00490,0.56805,0.42705
|
||||
500,0.00418,0.59194,0.40387
|
||||
501,0.00374,0.61593,0.38033
|
||||
502,0.00364,0.63984,0.35652
|
||||
503,0.00393,0.66346,0.33260
|
||||
504,0.00471,0.68656,0.30872
|
||||
505,0.00605,0.70890,0.28505
|
||||
506,0.00802,0.73018,0.26180
|
||||
507,0.01073,0.74993,0.23934
|
||||
508,0.01424,0.76771,0.21805
|
||||
509,0.01860,0.78319,0.19821
|
||||
510,0.02382,0.79618,0.18001
|
||||
511,0.02983,0.80664,0.16352
|
||||
512,0.03645,0.81498,0.14857
|
||||
513,0.04345,0.82161,0.13495
|
||||
514,0.05062,0.82692,0.12246
|
||||
515,0.05780,0.83125,0.11095
|
||||
516,0.06485,0.83484,0.10031
|
||||
517,0.07183,0.83765,0.09052
|
||||
518,0.07882,0.83959,0.08158
|
||||
519,0.08593,0.84060,0.07347
|
||||
520,0.09322,0.84063,0.06615
|
||||
521,0.10076,0.83968,0.05957
|
||||
522,0.10849,0.83786,0.05365
|
||||
523,0.11636,0.83533,0.04831
|
||||
524,0.12431,0.83221,0.04349
|
||||
525,0.13227,0.82861,0.03912
|
||||
526,0.14020,0.82463,0.03517
|
||||
527,0.14806,0.82034,0.03160
|
||||
528,0.15582,0.81580,0.02838
|
||||
529,0.16344,0.81106,0.02550
|
||||
530,0.17090,0.80617,0.02292
|
||||
531,0.17820,0.80119,0.02062
|
||||
532,0.18536,0.79609,0.01855
|
||||
533,0.19247,0.79084,0.01668
|
||||
534,0.19958,0.78542,0.01500
|
||||
535,0.20674,0.77980,0.01346
|
||||
536,0.21399,0.77394,0.01207
|
||||
537,0.22130,0.76790,0.01080
|
||||
538,0.22862,0.76172,0.00966
|
||||
539,0.23592,0.75544,0.00864
|
||||
540,0.24316,0.74912,0.00773
|
||||
541,0.25030,0.74278,0.00692
|
||||
542,0.25736,0.73644,0.00620
|
||||
543,0.26434,0.73010,0.00556
|
||||
544,0.27125,0.72376,0.00499
|
||||
545,0.27809,0.71742,0.00448
|
||||
546,0.28489,0.71108,0.00403
|
||||
547,0.29164,0.70474,0.00362
|
||||
548,0.29834,0.69841,0.00326
|
||||
549,0.30499,0.69208,0.00293
|
||||
550,0.31161,0.68576,0.00263
|
||||
551,0.31821,0.67944,0.00236
|
||||
552,0.32481,0.67307,0.00211
|
||||
553,0.33148,0.66663,0.00189
|
||||
554,0.33825,0.66006,0.00170
|
||||
555,0.34516,0.65332,0.00152
|
||||
556,0.35222,0.64642,0.00136
|
||||
557,0.35937,0.63941,0.00123
|
||||
558,0.36653,0.63237,0.00110
|
||||
559,0.37363,0.62538,0.00099
|
||||
560,0.38061,0.61851,0.00089
|
||||
561,0.38743,0.61177,0.00080
|
||||
562,0.39416,0.60512,0.00072
|
||||
563,0.40087,0.59849,0.00064
|
||||
564,0.40763,0.59179,0.00058
|
||||
565,0.41450,0.58498,0.00052
|
||||
566,0.42152,0.57801,0.00047
|
||||
567,0.42864,0.57094,0.00042
|
||||
568,0.43579,0.56383,0.00038
|
||||
569,0.44293,0.55672,0.00034
|
||||
570,0.45001,0.54968,0.00031
|
||||
571,0.45698,0.54274,0.00028
|
||||
572,0.46388,0.53587,0.00025
|
||||
573,0.47071,0.52906,0.00023
|
||||
574,0.47751,0.52229,0.00020
|
||||
575,0.48429,0.51553,0.00019
|
||||
576,0.49105,0.50878,0.00017
|
||||
577,0.49782,0.50203,0.00015
|
||||
578,0.50458,0.49529,0.00014
|
||||
579,0.51133,0.48854,0.00013
|
||||
580,0.51808,0.48181,0.00011
|
||||
581,0.52481,0.47509,0.00010
|
||||
582,0.53145,0.46846,0.00009
|
||||
583,0.53795,0.46197,0.00008
|
||||
584,0.54425,0.45567,0.00008
|
||||
585,0.55031,0.44962,0.00007
|
||||
586,0.55610,0.44384,0.00006
|
||||
587,0.56167,0.43828,0.00006
|
||||
588,0.56707,0.43288,0.00005
|
||||
589,0.57236,0.42759,0.00005
|
||||
590,0.57757,0.42238,0.00004
|
||||
591,0.58273,0.41723,0.00004
|
||||
592,0.58783,0.41214,0.00004
|
||||
593,0.59283,0.40714,0.00003
|
||||
594,0.59772,0.40225,0.00003
|
||||
595,0.60249,0.39748,0.00003
|
||||
596,0.60712,0.39285,0.00003
|
||||
597,0.61163,0.38834,0.00002
|
||||
598,0.61604,0.38394,0.00002
|
||||
599,0.62034,0.37963,0.00002
|
||||
600,0.62457,0.37541,0.00002
|
||||
601,0.62871,0.37127,0.00002
|
||||
602,0.63276,0.36723,0.00002
|
||||
603,0.63668,0.36330,0.00002
|
||||
604,0.64046,0.35952,0.00001
|
||||
605,0.64409,0.35589,0.00001
|
||||
606,0.64756,0.35243,0.00001
|
||||
607,0.65088,0.34911,0.00001
|
||||
608,0.65405,0.34594,0.00001
|
||||
609,0.65708,0.34291,0.00001
|
||||
610,0.66000,0.33999,0.00001
|
||||
611,0.66280,0.33719,0.00001
|
||||
612,0.66548,0.33451,0.00001
|
||||
613,0.66807,0.33193,0.00001
|
||||
614,0.67055,0.32945,0.00001
|
||||
615,0.67293,0.32706,0.00001
|
||||
616,0.67523,0.32477,0.00000
|
||||
617,0.67744,0.32256,0.00000
|
||||
618,0.67958,0.32042,0.00000
|
||||
619,0.68166,0.31834,0.00000
|
||||
620,0.68369,0.31631,0.00000
|
||||
621,0.68567,0.31433,0.00000
|
||||
622,0.68758,0.31242,0.00000
|
||||
623,0.68940,0.31060,0.00000
|
||||
624,0.69111,0.30889,0.00000
|
||||
625,0.69269,0.30731,0.00000
|
||||
626,0.69415,0.30585,0.00000
|
||||
627,0.69549,0.30451,0.00000
|
||||
628,0.69675,0.30325,0.00000
|
||||
629,0.69793,0.30207,0.00000
|
||||
630,0.69907,0.30093,0.00000
|
||||
631,0.70017,0.29983,0.00000
|
||||
632,0.70124,0.29876,0.00000
|
||||
633,0.70228,0.29772,0.00000
|
||||
634,0.70329,0.29671,0.00000
|
||||
635,0.70426,0.29574,0.00000
|
||||
636,0.70520,0.29480,0.00000
|
||||
637,0.70612,0.29388,0.00000
|
||||
638,0.70703,0.29297,0.00000
|
||||
639,0.70795,0.29205,0.00000
|
||||
640,0.70887,0.29113,0.00000
|
||||
641,0.70980,0.29020,0.00000
|
||||
642,0.71071,0.28929,0.00000
|
||||
643,0.71157,0.28843,0.00000
|
||||
644,0.71236,0.28764,0.00000
|
||||
645,0.71304,0.28696,0.00000
|
||||
646,0.71361,0.28639,0.00000
|
||||
647,0.71410,0.28590,0.00000
|
||||
648,0.71452,0.28548,0.00000
|
||||
649,0.71490,0.28510,0.00000
|
||||
650,0.71528,0.28472,0.00000
|
||||
651,0.71566,0.28434,0.00000
|
||||
652,0.71605,0.28395,0.00000
|
||||
653,0.71645,0.28355,0.00000
|
||||
654,0.71685,0.28315,0.00000
|
||||
655,0.71725,0.28275,0.00000
|
||||
656,0.71764,0.28236,0.00000
|
||||
657,0.71802,0.28198,0.00000
|
||||
658,0.71840,0.28160,0.00000
|
||||
659,0.71876,0.28124,0.00000
|
||||
660,0.71912,0.28088,0.00000
|
||||
661,0.71946,0.28054,0.00000
|
||||
662,0.71978,0.28022,0.00000
|
||||
663,0.72009,0.27991,0.00000
|
||||
664,0.72037,0.27963,0.00000
|
||||
665,0.72062,0.27938,0.00000
|
||||
666,0.72084,0.27916,0.00000
|
||||
667,0.72104,0.27896,0.00000
|
||||
668,0.72122,0.27878,0.00000
|
||||
669,0.72139,0.27861,0.00000
|
||||
670,0.72154,0.27846,0.00000
|
||||
671,0.72169,0.27831,0.00000
|
||||
672,0.72182,0.27818,0.00000
|
||||
673,0.72195,0.27805,0.00000
|
||||
674,0.72208,0.27792,0.00000
|
||||
675,0.72219,0.27781,0.00000
|
||||
676,0.72230,0.27770,0.00000
|
||||
677,0.72239,0.27761,0.00000
|
||||
678,0.72248,0.27752,0.00000
|
||||
679,0.72257,0.27743,0.00000
|
||||
680,0.72265,0.27735,0.00000
|
||||
681,0.72272,0.27728,0.00000
|
||||
682,0.72279,0.27721,0.00000
|
||||
683,0.72285,0.27715,0.00000
|
||||
684,0.72291,0.27709,0.00000
|
||||
685,0.72296,0.27704,0.00000
|
||||
686,0.72300,0.27700,0.00000
|
||||
687,0.72304,0.27696,0.00000
|
||||
688,0.72308,0.27692,0.00000
|
||||
689,0.72311,0.27689,0.00000
|
||||
690,0.72314,0.27686,0.00000
|
||||
691,0.72317,0.27683,0.00000
|
||||
692,0.72320,0.27680,0.00000
|
||||
693,0.72323,0.27677,0.00000
|
||||
694,0.72325,0.27675,0.00000
|
||||
695,0.72327,0.27673,0.00000
|
||||
696,0.72328,0.27672,0.00000
|
||||
697,0.72329,0.27671,0.00000
|
||||
698,0.72329,0.27671,0.00000
|
||||
699,0.72329,0.27671,0.00000
|
||||
700,0.72329,0.27671,0.00000
|
||||
701,0.72329,0.27671,0.00000
|
||||
702,0.72329,0.27671,0.00000
|
||||
703,0.72329,0.27671,0.00000
|
||||
704,0.72329,0.27671,0.00000
|
||||
705,0.72329,0.27671,0.00000
|
||||
706,0.72329,0.27671,0.00000
|
||||
707,0.72328,0.27672,0.00000
|
||||
708,0.72327,0.27673,0.00000
|
||||
709,0.72325,0.27675,0.00000
|
||||
710,0.72323,0.27677,0.00000
|
||||
711,0.72320,0.27680,0.00000
|
||||
712,0.72318,0.27682,0.00000
|
||||
713,0.72314,0.27686,0.00000
|
||||
714,0.72311,0.27689,0.00000
|
||||
715,0.72308,0.27692,0.00000
|
||||
716,0.72305,0.27695,0.00000
|
||||
717,0.72301,0.27699,0.00000
|
||||
718,0.72298,0.27702,0.00000
|
||||
719,0.72295,0.27705,0.00000
|
||||
720,0.72292,0.27708,0.00000
|
||||
721,0.72288,0.27712,0.00000
|
||||
722,0.72284,0.27716,0.00000
|
||||
723,0.72280,0.27720,0.00000
|
||||
724,0.72276,0.27724,0.00000
|
||||
725,0.72272,0.27728,0.00000
|
||||
726,0.72268,0.27732,0.00000
|
||||
727,0.72264,0.27736,0.00000
|
||||
728,0.72259,0.27741,0.00000
|
||||
729,0.72255,0.27745,0.00000
|
||||
730,0.72251,0.27749,0.00000
|
||||
731,0.72246,0.27754,0.00000
|
||||
732,0.72242,0.27758,0.00000
|
||||
733,0.72237,0.27763,0.00000
|
||||
734,0.72233,0.27767,0.00000
|
||||
735,0.72228,0.27772,0.00000
|
||||
736,0.72222,0.27778,0.00000
|
||||
737,0.72217,0.27783,0.00000
|
||||
738,0.72211,0.27789,0.00000
|
||||
739,0.72204,0.27796,0.00000
|
||||
740,0.72198,0.27802,0.00000
|
||||
741,0.72191,0.27809,0.00000
|
||||
742,0.72184,0.27816,0.00000
|
||||
743,0.72177,0.27823,0.00000
|
||||
744,0.72169,0.27831,0.00000
|
||||
745,0.72162,0.27838,0.00000
|
||||
746,0.72155,0.27845,0.00000
|
||||
747,0.72148,0.27852,0.00000
|
||||
748,0.72141,0.27859,0.00000
|
||||
749,0.72134,0.27866,0.00000
|
||||
750,0.72127,0.27873,0.00000
|
||||
751,0.72120,0.27880,0.00000
|
||||
752,0.72112,0.27888,0.00000
|
||||
753,0.72105,0.27895,0.00000
|
||||
754,0.72098,0.27902,0.00000
|
||||
755,0.72091,0.27909,0.00000
|
||||
756,0.72083,0.27917,0.00000
|
||||
757,0.72075,0.27925,0.00000
|
||||
758,0.72068,0.27932,0.00000
|
||||
759,0.72060,0.27940,0.00000
|
||||
760,0.72052,0.27948,0.00000
|
||||
761,0.72044,0.27956,0.00000
|
||||
762,0.72037,0.27963,0.00000
|
||||
763,0.72030,0.27970,0.00000
|
||||
764,0.72022,0.27978,0.00000
|
||||
765,0.72015,0.27985,0.00000
|
||||
766,0.72008,0.27992,0.00000
|
||||
767,0.72001,0.27999,0.00000
|
||||
768,0.71994,0.28006,0.00000
|
||||
769,0.71987,0.28013,0.00000
|
||||
770,0.71980,0.28020,0.00000
|
||||
771,0.71973,0.28027,0.00000
|
||||
772,0.71966,0.28034,0.00000
|
||||
773,0.71958,0.28042,0.00000
|
||||
774,0.71951,0.28049,0.00000
|
||||
775,0.71943,0.28057,0.00000
|
||||
776,0.71936,0.28064,0.00000
|
||||
777,0.71928,0.28072,0.00000
|
||||
778,0.71920,0.28080,0.00000
|
||||
779,0.71912,0.28088,0.00000
|
||||
780,0.71904,0.28096,0.00000
|
||||
781,0.71895,0.28105,0.00000
|
||||
782,0.71887,0.28113,0.00000
|
||||
783,0.71879,0.28121,0.00000
|
||||
784,0.71870,0.28130,0.00000
|
||||
785,0.71862,0.28138,0.00000
|
||||
786,0.71853,0.28147,0.00000
|
||||
787,0.71845,0.28155,0.00000
|
||||
788,0.71836,0.28164,0.00000
|
||||
789,0.71828,0.28172,0.00000
|
||||
790,0.71819,0.28181,0.00000
|
||||
791,0.71810,0.28190,0.00000
|
||||
792,0.71802,0.28198,0.00000
|
||||
793,0.71793,0.28207,0.00000
|
||||
794,0.71783,0.28217,0.00000
|
||||
795,0.71774,0.28226,0.00000
|
||||
796,0.71764,0.28236,0.00000
|
||||
797,0.71753,0.28247,0.00000
|
||||
798,0.71743,0.28257,0.00000
|
||||
799,0.71732,0.28268,0.00000
|
||||
800,0.71721,0.28279,0.00000
|
||||
801,0.71710,0.28290,0.00000
|
||||
802,0.71699,0.28301,0.00000
|
||||
803,0.71688,0.28312,0.00000
|
||||
804,0.71677,0.28323,0.00000
|
||||
805,0.71666,0.28334,0.00000
|
||||
806,0.71655,0.28345,0.00000
|
||||
807,0.71644,0.28356,0.00000
|
||||
808,0.71633,0.28367,0.00000
|
||||
809,0.71622,0.28378,0.00000
|
||||
810,0.71611,0.28389,0.00000
|
||||
811,0.71599,0.28401,0.00000
|
||||
812,0.71588,0.28412,0.00000
|
||||
813,0.71577,0.28423,0.00000
|
||||
814,0.71566,0.28434,0.00000
|
||||
815,0.71555,0.28445,0.00000
|
||||
816,0.71544,0.28456,0.00000
|
||||
817,0.71533,0.28467,0.00000
|
||||
818,0.71522,0.28478,0.00000
|
||||
819,0.71512,0.28488,0.00000
|
||||
820,0.71502,0.28498,0.00000
|
||||
821,0.71492,0.28508,0.00000
|
||||
822,0.71482,0.28518,0.00000
|
||||
823,0.71473,0.28527,0.00000
|
||||
824,0.71464,0.28536,0.00000
|
||||
825,0.71455,0.28545,0.00000
|
||||
826,0.71447,0.28553,0.00000
|
||||
827,0.71439,0.28561,0.00000
|
||||
828,0.71431,0.28569,0.00000
|
||||
829,0.71424,0.28576,0.00000
|
||||
830,0.71417,0.28583,0.00000
|
||||
|
|
|
@ -1,441 +0,0 @@
|
|||
390, 4.15003E-04, 3.68349E-04, 9.54729E-03
|
||||
391, 5.02650E-04, 4.48015E-04, 1.14794E-02
|
||||
392, 6.07367E-04, 5.43965E-04, 1.37986E-02
|
||||
393, 7.31850E-04, 6.58983E-04, 1.65746E-02
|
||||
394, 8.79012E-04, 7.96121E-04, 1.98869E-02
|
||||
395, 1.05192E-03, 9.58658E-04, 2.38250E-02
|
||||
396, 1.25373E-03, 1.15002E-03, 2.84877E-02
|
||||
397, 1.48756E-03, 1.37367E-03, 3.39832E-02
|
||||
398, 1.75633E-03, 1.63296E-03, 4.04274E-02
|
||||
399, 2.06261E-03, 1.93089E-03, 4.79417E-02
|
||||
400, 2.40836E-03, 2.26991E-03, 5.66498E-02
|
||||
401, 2.79522E-03, 2.65210E-03, 6.66757E-02
|
||||
402, 3.22640E-03, 3.08110E-03, 7.81479E-02
|
||||
403, 3.70617E-03, 3.56156E-03, 9.11925E-02
|
||||
404, 4.23972E-03, 4.09900E-03, 1.05926E-01
|
||||
405, 4.83339E-03, 4.70010E-03, 1.22451E-01
|
||||
406, 5.49335E-03, 5.37186E-03, 1.40844E-01
|
||||
407, 6.21933E-03, 6.11757E-03, 1.61140E-01
|
||||
408, 7.00631E-03, 6.93795E-03, 1.83325E-01
|
||||
409, 7.84503E-03, 7.83144E-03, 2.07327E-01
|
||||
410, 8.72127E-03, 8.79369E-03, 2.33008E-01
|
||||
411, 9.61879E-03, 9.81865E-03, 2.60183E-01
|
||||
412, 1.05324E-02, 1.09044E-02, 2.88723E-01
|
||||
413, 1.14620E-02, 1.20509E-02, 3.18512E-01
|
||||
414, 1.24105E-02, 1.32582E-02, 3.49431E-01
|
||||
415, 1.33837E-02, 1.45277E-02, 3.81363E-01
|
||||
416, 1.43870E-02, 1.58600E-02, 4.14141E-01
|
||||
417, 1.54116E-02, 1.72496E-02, 4.47350E-01
|
||||
418, 1.64424E-02, 1.86878E-02, 4.80439E-01
|
||||
419, 1.74614E-02, 2.01638E-02, 5.12767E-01
|
||||
420, 1.84480E-02, 2.16649E-02, 5.43618E-01
|
||||
421, 1.93852E-02, 2.31801E-02, 5.72399E-01
|
||||
422, 2.02811E-02, 2.47139E-02, 5.99284E-01
|
||||
423, 2.11545E-02, 2.62785E-02, 6.24786E-01
|
||||
424, 2.20286E-02, 2.78905E-02, 6.49576E-01
|
||||
425, 2.29317E-02, 2.95714E-02, 6.74474E-01
|
||||
426, 2.38896E-02, 3.13438E-02, 7.00186E-01
|
||||
427, 2.49026E-02, 3.32151E-02, 7.26460E-01
|
||||
428, 2.59631E-02, 3.51889E-02, 7.52726E-01
|
||||
429, 2.70619E-02, 3.72683E-02, 7.78333E-01
|
||||
430, 2.81877E-02, 3.94566E-02, 8.02555E-01
|
||||
431, 2.93303E-02, 4.17546E-02, 8.24818E-01
|
||||
432, 3.04898E-02, 4.41544E-02, 8.45422E-01
|
||||
433, 3.16694E-02, 4.66432E-02, 8.64961E-01
|
||||
434, 3.28731E-02, 4.92050E-02, 8.84100E-01
|
||||
435, 3.41054E-02, 5.18199E-02, 9.03573E-01
|
||||
436, 3.53670E-02, 5.44645E-02, 9.23844E-01
|
||||
437, 3.66400E-02, 5.71131E-02, 9.44055E-01
|
||||
438, 3.78988E-02, 5.97369E-02, 9.62920E-01
|
||||
439, 3.91148E-02, 6.23038E-02, 9.79057E-01
|
||||
440, 4.02563E-02, 6.47782E-02, 9.91020E-01
|
||||
441, 4.12989E-02, 6.71329E-02, 9.97765E-01
|
||||
442, 4.22582E-02, 6.93844E-02, 9.99982E-01
|
||||
443, 4.31627E-02, 7.15658E-02, 9.98861E-01
|
||||
444, 4.40444E-02, 7.37164E-02, 9.95628E-01
|
||||
445, 4.49380E-02, 7.58812E-02, 9.91515E-01
|
||||
446, 4.58729E-02, 7.80980E-02, 9.87377E-01
|
||||
447, 4.68459E-02, 8.03538E-02, 9.82619E-01
|
||||
448, 4.78446E-02, 8.26198E-02, 9.76301E-01
|
||||
449, 4.88555E-02, 8.48644E-02, 9.67513E-01
|
||||
450, 4.98639E-02, 8.70524E-02, 9.55393E-01
|
||||
451, 5.08618E-02, 8.91640E-02, 9.39499E-01
|
||||
452, 5.18731E-02, 9.12523E-02, 9.20807E-01
|
||||
453, 5.29317E-02, 9.33950E-02, 9.00592E-01
|
||||
454, 5.40746E-02, 9.56775E-02, 8.80040E-01
|
||||
455, 5.53418E-02, 9.81934E-02, 8.60240E-01
|
||||
456, 5.67734E-02, 1.01031E-01, 8.42031E-01
|
||||
457, 5.83973E-02, 1.04229E-01, 8.25572E-01
|
||||
458, 6.02409E-02, 1.07814E-01, 8.10860E-01
|
||||
459, 6.23353E-02, 1.11817E-01, 7.97902E-01
|
||||
460, 6.47164E-02, 1.16272E-01, 7.86704E-01
|
||||
461, 6.74131E-02, 1.21204E-01, 7.77119E-01
|
||||
462, 7.04040E-02, 1.26573E-01, 7.68365E-01
|
||||
463, 7.36489E-02, 1.32311E-01, 7.59538E-01
|
||||
464, 7.70978E-02, 1.38334E-01, 7.49777E-01
|
||||
465, 8.06894E-02, 1.44541E-01, 7.38268E-01
|
||||
466, 8.43613E-02, 1.50828E-01, 7.24389E-01
|
||||
467, 8.80904E-02, 1.57146E-01, 7.08113E-01
|
||||
468, 9.18630E-02, 1.63457E-01, 6.89572E-01
|
||||
469, 9.56637E-02, 1.69721E-01, 6.68927E-01
|
||||
470, 9.94755E-02, 1.75893E-01, 6.46359E-01
|
||||
471, 1.03286E-01, 1.81938E-01, 6.22112E-01
|
||||
472, 1.07103E-01, 1.87872E-01, 5.96591E-01
|
||||
473, 1.10947E-01, 1.93731E-01, 5.70216E-01
|
||||
474, 1.14838E-01, 1.99557E-01, 5.43373E-01
|
||||
475, 1.18802E-01, 2.05398E-01, 5.16411E-01
|
||||
476, 1.22863E-01, 2.11302E-01, 4.89647E-01
|
||||
477, 1.27026E-01, 2.17283E-01, 4.63406E-01
|
||||
478, 1.31293E-01, 2.23347E-01, 4.37965E-01
|
||||
479, 1.35666E-01, 2.29501E-01, 4.13549E-01
|
||||
480, 1.40145E-01, 2.35754E-01, 3.90333E-01
|
||||
481, 1.44731E-01, 2.42108E-01, 3.68394E-01
|
||||
482, 1.49415E-01, 2.48545E-01, 3.47582E-01
|
||||
483, 1.54189E-01, 2.55037E-01, 3.27724E-01
|
||||
484, 1.59038E-01, 2.61554E-01, 3.08676E-01
|
||||
485, 1.63952E-01, 2.68063E-01, 2.90322E-01
|
||||
486, 1.68932E-01, 2.74561E-01, 2.72626E-01
|
||||
487, 1.74063E-01, 2.81180E-01, 2.55772E-01
|
||||
488, 1.79457E-01, 2.88097E-01, 2.39945E-01
|
||||
489, 1.85241E-01, 2.95508E-01, 2.25280E-01
|
||||
490, 1.91556E-01, 3.03630E-01, 2.11867E-01
|
||||
491, 1.98532E-01, 3.12649E-01, 1.99719E-01
|
||||
492, 2.06182E-01, 3.22565E-01, 1.88674E-01
|
||||
493, 2.14485E-01, 3.33319E-01, 1.78557E-01
|
||||
494, 2.23411E-01, 3.44844E-01, 1.69217E-01
|
||||
495, 2.32926E-01, 3.57061E-01, 1.60526E-01
|
||||
496, 2.42992E-01, 3.69895E-01, 1.52368E-01
|
||||
497, 2.53616E-01, 3.83355E-01, 1.44620E-01
|
||||
498, 2.64810E-01, 3.97467E-01, 1.37173E-01
|
||||
499, 2.76587E-01, 4.12260E-01, 1.29937E-01
|
||||
500, 2.88959E-01, 4.27764E-01, 1.22839E-01
|
||||
501, 3.01934E-01, 4.44001E-01, 1.15834E-01
|
||||
502, 3.15508E-01, 4.60947E-01, 1.08922E-01
|
||||
503, 3.29673E-01, 4.78562E-01, 1.02118E-01
|
||||
504, 3.44416E-01, 4.96795E-01, 9.54374E-02
|
||||
505, 3.59716E-01, 5.15587E-01, 8.88965E-02
|
||||
506, 3.75550E-01, 5.34868E-01, 8.25343E-02
|
||||
507, 3.91895E-01, 5.54575E-01, 7.64613E-02
|
||||
508, 4.08722E-01, 5.74640E-01, 7.07769E-02
|
||||
509, 4.25998E-01, 5.94984E-01, 6.55491E-02
|
||||
510, 4.43683E-01, 6.15520E-01, 6.08210E-02
|
||||
511, 4.61731E-01, 6.36162E-01, 5.65919E-02
|
||||
512, 4.80094E-01, 6.56872E-01, 5.27659E-02
|
||||
513, 4.98717E-01, 6.77624E-01, 4.92440E-02
|
||||
514, 5.17539E-01, 6.98393E-01, 4.59470E-02
|
||||
515, 5.36494E-01, 7.19154E-01, 4.28123E-02
|
||||
516, 5.55493E-01, 7.39844E-01, 3.98014E-02
|
||||
517, 5.74386E-01, 7.60235E-01, 3.69227E-02
|
||||
518, 5.92995E-01, 7.80039E-01, 3.41909E-02
|
||||
519, 6.11124E-01, 7.98941E-01, 3.16158E-02
|
||||
520, 6.28561E-01, 8.16610E-01, 2.92033E-02
|
||||
521, 6.45139E-01, 8.32783E-01, 2.69536E-02
|
||||
522, 6.60907E-01, 8.47550E-01, 2.48575E-02
|
||||
523, 6.75993E-01, 8.61113E-01, 2.29047E-02
|
||||
524, 6.90542E-01, 8.73698E-01, 2.10855E-02
|
||||
525, 7.04720E-01, 8.85550E-01, 1.93912E-02
|
||||
526, 7.18662E-01, 8.96873E-01, 1.78145E-02
|
||||
527, 7.32323E-01, 9.07638E-01, 1.63514E-02
|
||||
528, 7.45606E-01, 9.17757E-01, 1.49980E-02
|
||||
529, 7.58410E-01, 9.27137E-01, 1.37497E-02
|
||||
530, 7.70630E-01, 9.35687E-01, 1.26013E-02
|
||||
531, 7.82208E-01, 9.43362E-01, 1.15466E-02
|
||||
532, 7.93290E-01, 9.50309E-01, 1.05766E-02
|
||||
533, 8.04084E-01, 9.56733E-01, 9.68268E-03
|
||||
534, 8.14813E-01, 9.62844E-01, 8.85746E-03
|
||||
535, 8.25711E-01, 9.68858E-01, 8.09453E-03
|
||||
536, 8.36943E-01, 9.74919E-01, 7.38890E-03
|
||||
537, 8.48349E-01, 9.80850E-01, 6.73799E-03
|
||||
538, 8.59676E-01, 9.86388E-01, 6.13947E-03
|
||||
539, 8.70656E-01, 9.91267E-01, 5.59073E-03
|
||||
540, 8.81011E-01, 9.95217E-01, 5.08900E-03
|
||||
541, 8.90496E-01, 9.98007E-01, 4.63120E-03
|
||||
542, 8.99052E-01, 9.99595E-01, 4.21366E-03
|
||||
543, 9.06669E-01, 9.99982E-01, 3.83286E-03
|
||||
544, 9.13341E-01, 9.99177E-01, 3.48559E-03
|
||||
545, 9.19067E-01, 9.97193E-01, 3.16893E-03
|
||||
546, 9.23898E-01, 9.94102E-01, 2.88021E-03
|
||||
547, 9.28099E-01, 9.90204E-01, 2.61698E-03
|
||||
548, 9.31995E-01, 9.85855E-01, 2.37701E-03
|
||||
549, 9.35916E-01, 9.81404E-01, 2.15829E-03
|
||||
550, 9.40198E-01, 9.77193E-01, 1.95896E-03
|
||||
551, 9.45076E-01, 9.73441E-01, 1.77737E-03
|
||||
552, 9.50367E-01, 9.69881E-01, 1.61218E-03
|
||||
553, 9.55775E-01, 9.66133E-01, 1.46215E-03
|
||||
554, 9.61000E-01, 9.61823E-01, 1.32606E-03
|
||||
555, 9.65733E-01, 9.56583E-01, 1.20277E-03
|
||||
556, 9.69744E-01, 9.50167E-01, 1.09118E-03
|
||||
557, 9.73133E-01, 9.42773E-01, 9.90135E-04
|
||||
558, 9.76086E-01, 9.34709E-01, 8.98564E-04
|
||||
559, 9.78793E-01, 9.26271E-01, 8.15524E-04
|
||||
560, 9.81445E-01, 9.17750E-01, 7.40174E-04
|
||||
561, 9.84186E-01, 9.09339E-01, 6.71772E-04
|
||||
562, 9.86965E-01, 9.00895E-01, 6.09693E-04
|
||||
563, 9.89678E-01, 8.92197E-01, 5.53372E-04
|
||||
564, 9.92220E-01, 8.83035E-01, 5.02292E-04
|
||||
565, 9.94486E-01, 8.73205E-01, 4.55979E-04
|
||||
566, 9.96386E-01, 8.62565E-01, 4.13997E-04
|
||||
567, 9.97895E-01, 8.51173E-01, 3.75940E-04
|
||||
568, 9.99004E-01, 8.39132E-01, 3.41439E-04
|
||||
569, 9.99706E-01, 8.26545E-01, 3.10160E-04
|
||||
570, 9.99993E-01, 8.13509E-01, 2.81800E-04
|
||||
571, 9.99837E-01, 8.00082E-01, 2.56084E-04
|
||||
572, 9.99123E-01, 7.86166E-01, 2.32764E-04
|
||||
573, 9.97719E-01, 7.71635E-01, 2.11616E-04
|
||||
574, 9.95491E-01, 7.56376E-01, 1.92436E-04
|
||||
575, 9.92310E-01, 7.40291E-01, 1.75039E-04
|
||||
576, 9.88146E-01, 7.23369E-01, 1.59257E-04
|
||||
577, 9.83345E-01, 7.05890E-01, 1.44940E-04
|
||||
578, 9.78342E-01, 6.88184E-01, 1.31948E-04
|
||||
579, 9.73564E-01, 6.70554E-01, 1.20157E-04
|
||||
580, 9.69429E-01, 6.53274E-01, 1.09454E-04
|
||||
581, 9.66211E-01, 6.36524E-01, 9.97367E-05
|
||||
582, 9.63630E-01, 6.20217E-01, 9.09125E-05
|
||||
583, 9.61273E-01, 6.04211E-01, 8.28976E-05
|
||||
584, 9.58732E-01, 5.88375E-01, 7.56160E-05
|
||||
585, 9.55602E-01, 5.72597E-01, 6.89991E-05
|
||||
586, 9.51569E-01, 5.56783E-01, 6.29846E-05
|
||||
587, 9.46654E-01, 5.40896E-01, 5.75163E-05
|
||||
588, 9.40962E-01, 5.24912E-01, 5.25432E-05
|
||||
589, 9.34600E-01, 5.08817E-01, 4.80192E-05
|
||||
590, 9.27673E-01, 4.92599E-01, 4.39024E-05
|
||||
591, 9.20264E-01, 4.76268E-01, 4.01551E-05
|
||||
592, 9.12391E-01, 4.59893E-01, 3.67431E-05
|
||||
593, 9.04050E-01, 4.43551E-01, 3.36353E-05
|
||||
594, 8.95243E-01, 4.27314E-01, 3.08037E-05
|
||||
595, 8.85969E-01, 4.11246E-01, 2.82228E-05
|
||||
596, 8.76242E-01, 3.95396E-01, 2.58697E-05
|
||||
597, 8.66117E-01, 3.79782E-01, 2.37235E-05
|
||||
598, 8.55658E-01, 3.64410E-01, 2.17653E-05
|
||||
599, 8.44926E-01, 3.49289E-01, 1.99779E-05
|
||||
600, 8.33982E-01, 3.34429E-01, 1.83459E-05
|
||||
601, 8.22859E-01, 3.19843E-01, 1.68551E-05
|
||||
602, 8.11491E-01, 3.05564E-01, 1.54929E-05
|
||||
603, 7.99794E-01, 2.91625E-01, 1.42476E-05
|
||||
604, 7.87689E-01, 2.78053E-01, 1.31087E-05
|
||||
605, 7.75103E-01, 2.64872E-01, 1.20667E-05
|
||||
606, 7.61996E-01, 2.52099E-01, 1.11131E-05
|
||||
607, 7.48425E-01, 2.39747E-01, 1.02399E-05
|
||||
608, 7.34470E-01, 2.27822E-01, 9.43999E-06
|
||||
609, 7.20208E-01, 2.16330E-01, 8.70695E-06
|
||||
610, 7.05713E-01, 2.05273E-01, 8.03488E-06
|
||||
611, 6.91044E-01, 1.94650E-01, 7.41844E-06
|
||||
612, 6.76212E-01, 1.84448E-01, 6.85279E-06
|
||||
613, 6.61220E-01, 1.74654E-01, 6.33352E-06
|
||||
614, 6.46072E-01, 1.65256E-01, 5.85662E-06
|
||||
615, 6.30773E-01, 1.56243E-01, 5.41843E-06
|
||||
616, 6.15349E-01, 1.47602E-01,
|
||||
617, 5.99888E-01, 1.39329E-01,
|
||||
618, 5.84489E-01, 1.31416E-01,
|
||||
619, 5.69240E-01, 1.23856E-01,
|
||||
620, 5.54224E-01, 1.16641E-01,
|
||||
621, 5.39469E-01, 1.09766E-01,
|
||||
622, 5.24827E-01, 1.03226E-01,
|
||||
623, 5.10124E-01, 9.70205E-02,
|
||||
624, 4.95206E-01, 9.11430E-02,
|
||||
625, 4.79941E-01, 8.55872E-02,
|
||||
626, 4.64270E-01, 8.03428E-02,
|
||||
627, 4.48338E-01, 7.53913E-02,
|
||||
628, 4.32329E-01, 7.07136E-02,
|
||||
629, 4.16406E-01, 6.62924E-02,
|
||||
630, 4.00711E-01, 6.21120E-02,
|
||||
631, 3.85355E-01, 5.81595E-02,
|
||||
632, 3.70377E-01, 5.44276E-02,
|
||||
633, 3.55793E-01, 5.09098E-02,
|
||||
634, 3.41618E-01, 4.75991E-02,
|
||||
635, 3.27864E-01, 4.44879E-02,
|
||||
636, 3.14541E-01, 4.15659E-02,
|
||||
637, 3.01662E-01, 3.88152E-02,
|
||||
638, 2.89239E-01, 3.62181E-02,
|
||||
639, 2.77278E-01, 3.37599E-02,
|
||||
640, 2.65784E-01, 3.14282E-02,
|
||||
641, 2.54740E-01, 2.92176E-02,
|
||||
642, 2.44054E-01, 2.71403E-02,
|
||||
643, 2.33634E-01, 2.52084E-02,
|
||||
644, 2.23399E-01, 2.34286E-02,
|
||||
645, 2.13284E-01, 2.18037E-02,
|
||||
646, 2.03257E-01, 2.03285E-02,
|
||||
647, 1.93370E-01, 1.89779E-02,
|
||||
648, 1.83688E-01, 1.77272E-02,
|
||||
649, 1.74263E-01, 1.65560E-02,
|
||||
650, 1.65141E-01, 1.54480E-02,
|
||||
651, 1.56354E-01, 1.43924E-02,
|
||||
652, 1.47916E-01, 1.33896E-02,
|
||||
653, 1.39834E-01, 1.24414E-02,
|
||||
654, 1.32111E-01, 1.15488E-02,
|
||||
655, 1.24749E-01, 1.07120E-02,
|
||||
656, 1.17744E-01, 9.92994E-03,
|
||||
657, 1.11081E-01, 9.20057E-03,
|
||||
658, 1.04747E-01, 8.52126E-03,
|
||||
659, 9.87277E-02, 7.88945E-03,
|
||||
660, 9.30085E-02, 7.30255E-03,
|
||||
661, 8.75769E-02, 6.75820E-03,
|
||||
662, 8.24219E-02, 6.25474E-03,
|
||||
663, 7.75328E-02, 5.79045E-03,
|
||||
664, 7.28989E-02, 5.36347E-03,
|
||||
665, 6.85100E-02, 4.97179E-03,
|
||||
666, 6.43554E-02, 4.61300E-03,
|
||||
667, 6.04242E-02, 4.28339E-03,
|
||||
668, 5.67057E-02, 3.97940E-03,
|
||||
669, 5.31896E-02, 3.69803E-03,
|
||||
670, 4.98661E-02, 3.43667E-03,
|
||||
671, 4.67258E-02, 3.19326E-03,
|
||||
672, 4.37598E-02, 2.96653E-03,
|
||||
673, 4.09594E-02, 2.75543E-03,
|
||||
674, 3.83165E-02, 2.55896E-03,
|
||||
675, 3.58233E-02, 2.37617E-03,
|
||||
676, 3.34725E-02, 2.20618E-03,
|
||||
677, 3.12583E-02, 2.04809E-03,
|
||||
678, 2.91751E-02, 1.90110E-03,
|
||||
679, 2.72173E-02, 1.76442E-03,
|
||||
680, 2.53790E-02, 1.63734E-03,
|
||||
681, 2.36541E-02, 1.51916E-03,
|
||||
682, 2.20336E-02, 1.40913E-03,
|
||||
683, 2.05092E-02, 1.30655E-03,
|
||||
684, 1.90735E-02, 1.21078E-03,
|
||||
685, 1.77201E-02, 1.12128E-03,
|
||||
686, 1.64451E-02, 1.03766E-03,
|
||||
687, 1.52510E-02, 9.59892E-04,
|
||||
688, 1.41404E-02, 8.87951E-04,
|
||||
689, 1.31137E-02, 8.21729E-04,
|
||||
690, 1.21701E-02, 7.61051E-04,
|
||||
691, 1.13063E-02, 7.05623E-04,
|
||||
692, 1.05131E-02, 6.54874E-04,
|
||||
693, 9.78127E-03, 6.08240E-04,
|
||||
694, 9.10300E-03, 5.65240E-04,
|
||||
695, 8.47170E-03, 5.25457E-04,
|
||||
696, 7.88227E-03, 4.88550E-04,
|
||||
697, 7.33213E-03, 4.54277E-04,
|
||||
698, 6.81928E-03, 4.22436E-04,
|
||||
699, 6.34173E-03, 3.92839E-04,
|
||||
700, 5.89749E-03, 3.65317E-04,
|
||||
701, 5.48444E-03, 3.39710E-04,
|
||||
702, 5.09978E-03, 3.15856E-04,
|
||||
703, 4.74086E-03, 2.93607E-04,
|
||||
704, 4.40538E-03, 2.72834E-04,
|
||||
705, 4.09129E-03, 2.53417E-04,
|
||||
706, 3.79703E-03, 2.35265E-04,
|
||||
707, 3.52187E-03, 2.18331E-04,
|
||||
708, 3.26520E-03, 2.02574E-04,
|
||||
709, 3.02632E-03, 1.87948E-04,
|
||||
710, 2.80447E-03, 1.74402E-04,
|
||||
711, 2.59882E-03, 1.61878E-04,
|
||||
712, 2.40849E-03, 1.50305E-04,
|
||||
713, 2.23259E-03, 1.39612E-04,
|
||||
714, 2.07024E-03, 1.29734E-04,
|
||||
715, 1.92058E-03, 1.20608E-04,
|
||||
716, 1.78269E-03, 1.12176E-04,
|
||||
717, 1.65540E-03, 1.04373E-04,
|
||||
718, 1.53762E-03, 9.71383E-05,
|
||||
719, 1.42839E-03, 9.04202E-05,
|
||||
720, 1.32687E-03, 8.41716E-05,
|
||||
721, 1.23238E-03, 7.83538E-05,
|
||||
722, 1.14456E-03, 7.29425E-05,
|
||||
723, 1.06308E-03, 6.79164E-05,
|
||||
724, 9.87592E-04, 6.32542E-05,
|
||||
725, 9.17777E-04, 5.89349E-05,
|
||||
726, 8.53264E-04, 5.49360E-05,
|
||||
727, 7.93589E-04, 5.12291E-05,
|
||||
728, 7.38306E-04, 4.77872E-05,
|
||||
729, 6.87018E-04, 4.45862E-05,
|
||||
730, 6.39373E-04, 4.16049E-05,
|
||||
731, 5.95057E-04, 3.88245E-05,
|
||||
732, 5.53797E-04, 3.62302E-05,
|
||||
733, 5.15350E-04, 3.38086E-05,
|
||||
734, 4.79496E-04, 3.15474E-05,
|
||||
735, 4.46035E-04, 2.94354E-05,
|
||||
736, 4.14809E-04, 2.74634E-05,
|
||||
737, 3.85749E-04, 2.56268E-05,
|
||||
738, 3.58792E-04, 2.39217E-05,
|
||||
739, 3.33861E-04, 2.23432E-05,
|
||||
740, 3.10869E-04, 2.08860E-05,
|
||||
741, 2.89699E-04, 1.95424E-05,
|
||||
742, 2.70145E-04, 1.82990E-05,
|
||||
743, 2.52007E-04, 1.71423E-05,
|
||||
744, 2.35117E-04, 1.60611E-05,
|
||||
745, 2.19329E-04, 1.50458E-05,
|
||||
746, 2.04535E-04, 1.40893E-05,
|
||||
747, 1.90692E-04, 1.31899E-05,
|
||||
748, 1.77771E-04, 1.23462E-05,
|
||||
749, 1.65736E-04, 1.15569E-05,
|
||||
750, 1.54549E-04, 1.08200E-05,
|
||||
751, 1.44167E-04, 1.01334E-05,
|
||||
752, 1.34528E-04, 9.49367E-06,
|
||||
753, 1.25574E-04, 8.89736E-06,
|
||||
754, 1.17251E-04, 8.34135E-06,
|
||||
755, 1.09508E-04, 7.82271E-06,
|
||||
756, 1.02300E-04, 7.33865E-06,
|
||||
757, 9.55828E-05, 6.88612E-06,
|
||||
758, 8.93161E-05, 6.46228E-06,
|
||||
759, 8.34631E-05, 6.06462E-06,
|
||||
760, 7.79912E-05, 5.69093E-06,
|
||||
761, 7.28730E-05, 5.33942E-06,
|
||||
762, 6.80921E-05, 5.00929E-06,
|
||||
763, 6.36342E-05, 4.69984E-06,
|
||||
764, 5.94841E-05, 4.41034E-06,
|
||||
765, 5.56264E-05, 4.13998E-06,
|
||||
766, 5.20430E-05, 3.88772E-06,
|
||||
767, 4.87063E-05, 3.65186E-06,
|
||||
768, 4.55900E-05, 3.43070E-06,
|
||||
769, 4.26710E-05, 3.22278E-06,
|
||||
770, 3.99295E-05, 3.02683E-06,
|
||||
771, 3.73509E-05, 2.84192E-06,
|
||||
772, 3.49326E-05, 2.66795E-06,
|
||||
773, 3.26730E-05, 2.50491E-06,
|
||||
774, 3.05690E-05, 2.35267E-06,
|
||||
775, 2.86163E-05, 2.21100E-06,
|
||||
776, 2.68077E-05, 2.07946E-06,
|
||||
777, 2.51286E-05, 1.95700E-06,
|
||||
778, 2.35645E-05, 1.84258E-06,
|
||||
779, 2.21026E-05, 1.73528E-06,
|
||||
780, 2.07321E-05, 1.63433E-06,
|
||||
781, 1.94444E-05, 1.53910E-06,
|
||||
782, 1.82351E-05, 1.44932E-06,
|
||||
783, 1.71008E-05, 1.36478E-06,
|
||||
784, 1.60380E-05, 1.28526E-06,
|
||||
785, 1.50432E-05, 1.21054E-06,
|
||||
786, 1.41127E-05, 1.14038E-06,
|
||||
787, 1.32420E-05, 1.07446E-06,
|
||||
788, 1.24263E-05, 1.01247E-06,
|
||||
789, 1.16618E-05, 9.54130E-07,
|
||||
790, 1.09446E-05, 8.99170E-07,
|
||||
791, 1.02716E-05, 8.47379E-07,
|
||||
792, 9.64036E-06, 7.98635E-07,
|
||||
793, 9.04897E-06, 7.52832E-07,
|
||||
794, 8.49535E-06, 7.09857E-07,
|
||||
795, 7.97750E-06, 6.69594E-07,
|
||||
796, 7.49341E-06, 6.31907E-07,
|
||||
797, 7.04079E-06, 5.96604E-07,
|
||||
798, 6.61744E-06, 5.63495E-07,
|
||||
799, 6.22133E-06, 5.32408E-07,
|
||||
800, 5.85057E-06, 5.03187E-07,
|
||||
801, 5.50333E-06, 4.75686E-07,
|
||||
802, 5.17756E-06, 4.49753E-07,
|
||||
803, 4.87135E-06, 4.25249E-07,
|
||||
804, 4.58300E-06, 4.02050E-07,
|
||||
805, 4.31102E-06, 3.80046E-07,
|
||||
806, 4.05422E-06, 3.59156E-07,
|
||||
807, 3.81213E-06, 3.39356E-07,
|
||||
808, 3.58438E-06, 3.20633E-07,
|
||||
809, 3.37053E-06, 3.02966E-07,
|
||||
810, 3.17009E-06, 2.86329E-07,
|
||||
811, 2.98248E-06, 2.70687E-07,
|
||||
812, 2.80691E-06, 2.55980E-07,
|
||||
813, 2.64257E-06, 2.42147E-07,
|
||||
814, 2.48873E-06, 2.29130E-07,
|
||||
815, 2.34468E-06, 2.16878E-07,
|
||||
816, 2.20974E-06, 2.05338E-07,
|
||||
817, 2.08315E-06, 1.94449E-07,
|
||||
818, 1.96419E-06, 1.84155E-07,
|
||||
819, 1.85222E-06, 1.74407E-07,
|
||||
820, 1.74666E-06, 1.65158E-07,
|
||||
821, 1.64705E-06, 1.56373E-07,
|
||||
822, 1.55307E-06, 1.48031E-07,
|
||||
823, 1.46448E-06, 1.40117E-07,
|
||||
824, 1.38100E-06, 1.32615E-07,
|
||||
825, 1.30241E-06, 1.25508E-07,
|
||||
826, 1.22844E-06, 1.18781E-07,
|
||||
827, 1.15888E-06, 1.12416E-07,
|
||||
828, 1.09348E-06, 1.06398E-07,
|
||||
829, 1.03203E-06, 1.00711E-07,
|
||||
830, 9.74306E-07, 9.53411E-08,
|
||||
|
|
|
@ -1,6 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="256px" height="250px" viewBox="0 0 256 250" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid">
|
||||
<g>
|
||||
<path d="M128.00106,0 C57.3172926,0 0,57.3066942 0,128.00106 C0,184.555281 36.6761997,232.535542 87.534937,249.460899 C93.9320223,250.645779 96.280588,246.684165 96.280588,243.303333 C96.280588,240.251045 96.1618878,230.167899 96.106777,219.472176 C60.4967585,227.215235 52.9826207,204.369712 52.9826207,204.369712 C47.1599584,189.574598 38.770408,185.640538 38.770408,185.640538 C27.1568785,177.696113 39.6458206,177.859325 39.6458206,177.859325 C52.4993419,178.762293 59.267365,191.04987 59.267365,191.04987 C70.6837675,210.618423 89.2115753,204.961093 96.5158685,201.690482 C97.6647155,193.417512 100.981959,187.77078 104.642583,184.574357 C76.211799,181.33766 46.324819,170.362144 46.324819,121.315702 C46.324819,107.340889 51.3250588,95.9223682 59.5132437,86.9583937 C58.1842268,83.7344152 53.8029229,70.715562 60.7532354,53.0843636 C60.7532354,53.0843636 71.5019501,49.6441813 95.9626412,66.2049595 C106.172967,63.368876 117.123047,61.9465949 128.00106,61.8978432 C138.879073,61.9465949 149.837632,63.368876 160.067033,66.2049595 C184.49805,49.6441813 195.231926,53.0843636 195.231926,53.0843636 C202.199197,70.715562 197.815773,83.7344152 196.486756,86.9583937 C204.694018,95.9223682 209.660343,107.340889 209.660343,121.315702 C209.660343,170.478725 179.716133,181.303747 151.213281,184.472614 C155.80443,188.444828 159.895342,196.234518 159.895342,208.176593 C159.895342,225.303317 159.746968,239.087361 159.746968,243.303333 C159.746968,246.709601 162.05102,250.70089 168.53925,249.443941 C219.370432,232.499507 256,184.536204 256,128.00106 C256,57.3066942 198.691187,0 128.00106,0 Z M47.9405593,182.340212 C47.6586465,182.976105 46.6581745,183.166873 45.7467277,182.730227 C44.8183235,182.312656 44.2968914,181.445722 44.5978808,180.80771 C44.8734344,180.152739 45.876026,179.97045 46.8023103,180.409216 C47.7328342,180.826786 48.2627451,181.702199 47.9405593,182.340212 Z M54.2367892,187.958254 C53.6263318,188.524199 52.4329723,188.261363 51.6232682,187.366874 C50.7860088,186.474504 50.6291553,185.281144 51.2480912,184.70672 C51.8776254,184.140775 53.0349512,184.405731 53.8743302,185.298101 C54.7115892,186.201069 54.8748019,187.38595 54.2367892,187.958254 Z M58.5562413,195.146347 C57.7719732,195.691096 56.4895886,195.180261 55.6968417,194.042013 C54.9125733,192.903764 54.9125733,191.538713 55.713799,190.991845 C56.5086651,190.444977 57.7719732,190.936735 58.5753181,192.066505 C59.3574669,193.22383 59.3574669,194.58888 58.5562413,195.146347 Z M65.8613592,203.471174 C65.1597571,204.244846 63.6654083,204.03712 62.5716717,202.981538 C61.4524999,201.94927 61.1409122,200.484596 61.8446341,199.710926 C62.5547146,198.935137 64.0575422,199.15346 65.1597571,200.200564 C66.2704506,201.230712 66.6095936,202.705984 65.8613592,203.471174 Z M75.3025151,206.281542 C74.9930474,207.284134 73.553809,207.739857 72.1039724,207.313809 C70.6562556,206.875043 69.7087748,205.700761 70.0012857,204.687571 C70.302275,203.678621 71.7478721,203.20382 73.2083069,203.659543 C74.6539041,204.09619 75.6035048,205.261994 75.3025151,206.281542 Z M86.046947,207.473627 C86.0829806,208.529209 84.8535871,209.404622 83.3316829,209.4237 C81.8013,209.457614 80.563428,208.603398 80.5464708,207.564772 C80.5464708,206.498591 81.7483088,205.631657 83.2786917,205.606221 C84.8005962,205.576546 86.046947,206.424403 86.046947,207.473627 Z M96.6021471,207.069023 C96.7844366,208.099171 95.7267341,209.156872 94.215428,209.438785 C92.7295577,209.710099 91.3539086,209.074206 91.1652603,208.052538 C90.9808515,206.996955 92.0576306,205.939253 93.5413813,205.66582 C95.054807,205.402984 96.4092596,206.021919 96.6021471,207.069023 Z" fill="#ffffff"></path>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 3.8 KiB |
|
|
@ -1,6 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="256px" height="250px" viewBox="0 0 256 250" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid">
|
||||
<g>
|
||||
<path d="M128.00106,0 C57.3172926,0 0,57.3066942 0,128.00106 C0,184.555281 36.6761997,232.535542 87.534937,249.460899 C93.9320223,250.645779 96.280588,246.684165 96.280588,243.303333 C96.280588,240.251045 96.1618878,230.167899 96.106777,219.472176 C60.4967585,227.215235 52.9826207,204.369712 52.9826207,204.369712 C47.1599584,189.574598 38.770408,185.640538 38.770408,185.640538 C27.1568785,177.696113 39.6458206,177.859325 39.6458206,177.859325 C52.4993419,178.762293 59.267365,191.04987 59.267365,191.04987 C70.6837675,210.618423 89.2115753,204.961093 96.5158685,201.690482 C97.6647155,193.417512 100.981959,187.77078 104.642583,184.574357 C76.211799,181.33766 46.324819,170.362144 46.324819,121.315702 C46.324819,107.340889 51.3250588,95.9223682 59.5132437,86.9583937 C58.1842268,83.7344152 53.8029229,70.715562 60.7532354,53.0843636 C60.7532354,53.0843636 71.5019501,49.6441813 95.9626412,66.2049595 C106.172967,63.368876 117.123047,61.9465949 128.00106,61.8978432 C138.879073,61.9465949 149.837632,63.368876 160.067033,66.2049595 C184.49805,49.6441813 195.231926,53.0843636 195.231926,53.0843636 C202.199197,70.715562 197.815773,83.7344152 196.486756,86.9583937 C204.694018,95.9223682 209.660343,107.340889 209.660343,121.315702 C209.660343,170.478725 179.716133,181.303747 151.213281,184.472614 C155.80443,188.444828 159.895342,196.234518 159.895342,208.176593 C159.895342,225.303317 159.746968,239.087361 159.746968,243.303333 C159.746968,246.709601 162.05102,250.70089 168.53925,249.443941 C219.370432,232.499507 256,184.536204 256,128.00106 C256,57.3066942 198.691187,0 128.00106,0 Z M47.9405593,182.340212 C47.6586465,182.976105 46.6581745,183.166873 45.7467277,182.730227 C44.8183235,182.312656 44.2968914,181.445722 44.5978808,180.80771 C44.8734344,180.152739 45.876026,179.97045 46.8023103,180.409216 C47.7328342,180.826786 48.2627451,181.702199 47.9405593,182.340212 Z M54.2367892,187.958254 C53.6263318,188.524199 52.4329723,188.261363 51.6232682,187.366874 C50.7860088,186.474504 50.6291553,185.281144 51.2480912,184.70672 C51.8776254,184.140775 53.0349512,184.405731 53.8743302,185.298101 C54.7115892,186.201069 54.8748019,187.38595 54.2367892,187.958254 Z M58.5562413,195.146347 C57.7719732,195.691096 56.4895886,195.180261 55.6968417,194.042013 C54.9125733,192.903764 54.9125733,191.538713 55.713799,190.991845 C56.5086651,190.444977 57.7719732,190.936735 58.5753181,192.066505 C59.3574669,193.22383 59.3574669,194.58888 58.5562413,195.146347 Z M65.8613592,203.471174 C65.1597571,204.244846 63.6654083,204.03712 62.5716717,202.981538 C61.4524999,201.94927 61.1409122,200.484596 61.8446341,199.710926 C62.5547146,198.935137 64.0575422,199.15346 65.1597571,200.200564 C66.2704506,201.230712 66.6095936,202.705984 65.8613592,203.471174 Z M75.3025151,206.281542 C74.9930474,207.284134 73.553809,207.739857 72.1039724,207.313809 C70.6562556,206.875043 69.7087748,205.700761 70.0012857,204.687571 C70.302275,203.678621 71.7478721,203.20382 73.2083069,203.659543 C74.6539041,204.09619 75.6035048,205.261994 75.3025151,206.281542 Z M86.046947,207.473627 C86.0829806,208.529209 84.8535871,209.404622 83.3316829,209.4237 C81.8013,209.457614 80.563428,208.603398 80.5464708,207.564772 C80.5464708,206.498591 81.7483088,205.631657 83.2786917,205.606221 C84.8005962,205.576546 86.046947,206.424403 86.046947,207.473627 Z M96.6021471,207.069023 C96.7844366,208.099171 95.7267341,209.156872 94.215428,209.438785 C92.7295577,209.710099 91.3539086,209.074206 91.1652603,208.052538 C90.9808515,206.996955 92.0576306,205.939253 93.5413813,205.66582 C95.054807,205.402984 96.4092596,206.021919 96.6021471,207.069023 Z" fill="#161614"></path>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 3.8 KiB |
|
|
@ -1,9 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="256px" height="181px" viewBox="0 0 256 181" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid">
|
||||
<g>
|
||||
<path d="M0,180.6639 L60.2219918,90.3319502 L0,0 L45.1659748,0 L105.387967,90.3319502 L45.1659748,180.6639 L0,180.6639 L0,180.6639 Z" fill="#F97E2F"></path>
|
||||
<path d="M60.2219918,180.6639 L120.443984,90.3319502 L60.2219918,0 L105.387967,0 L225.829875,180.6639 L180.6639,180.6639 L143.026971,124.207469 L105.387967,180.6639 L60.2219918,180.6639 L60.2219918,180.6639 Z" fill="#95653A"></path>
|
||||
<path d="M205.757262,127.970954 L185.684647,97.8609957 L255.941909,97.8589212 L255.941909,127.970954 L205.757262,127.970954 L205.757262,127.970954 Z" fill="#F97E2F"></path>
|
||||
<path d="M175.647303,82.8049793 L155.572614,52.6950209 L255.941909,52.6929463 L255.941909,82.8049793 L175.647303,82.8049793 L175.647303,82.8049793 Z" fill="#F97E2F"></path>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 997 B |
|
Before Width: | Height: | Size: 48 KiB |
|
|
@ -1,64 +0,0 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
width="100%"
|
||||
height="100%"
|
||||
viewBox="0 0 300 300">
|
||||
|
||||
<title>SVG Logo</title>
|
||||
<desc>Designed for the SVG Logo Contest in 2006 by Harvey Rayner, and adopted by W3C in 2009. It is available under the Creative Commons license for those who have an SVG product or who are using SVG on their site.</desc>
|
||||
|
||||
<metadata id="license">
|
||||
<rdf:RDF
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://web.resource.org/cc/">
|
||||
<cc:Work rdf:about="">
|
||||
<dc:title>SVG Logo</dc:title>
|
||||
<dc:date>14-08-2009</dc:date>
|
||||
<dc:creator>
|
||||
<cc:Agent><dc:title>W3C</dc:title></cc:Agent>
|
||||
<cc:Agent><dc:title>Harvey Rayner, designer</dc:title></cc:Agent>
|
||||
</dc:creator>
|
||||
<dc:description>See document description</dc:description>
|
||||
<cc:license rdf:resource="http://creativecommons.org/licenses/by-nc-sa/2.5/" />
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
<cc:License rdf:about="http://creativecommons.org/licenses/by-nc-sa/2.5/">
|
||||
<cc:permits rdf:resource="http://web.resource.org/cc/Reproduction" />
|
||||
<cc:permits rdf:resource="http://web.resource.org/cc/Distribution" />
|
||||
<cc:requires rdf:resource="http://web.resource.org/cc/Notice" />
|
||||
<cc:requires rdf:resource="http://web.resource.org/cc/Attribution" />
|
||||
<cc:prohibits rdf:resource="http://web.resource.org/cc/CommercialUse" />
|
||||
<cc:permits rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
|
||||
<cc:requires rdf:resource="http://web.resource.org/cc/ShareAlike" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
|
||||
|
||||
<defs>
|
||||
<g id="SVG" fill="#ffffff" transform="scale(2) translate(20,79)">
|
||||
<path id="S" d="M 5.482,31.319 C2.163,28.001 0.109,23.419 0.109,18.358 C0.109,8.232 8.322,0.024 18.443,0.024 C28.569,0.024 36.782,8.232 36.782,18.358 L26.042,18.358 C26.042,14.164 22.638,10.765 18.443,10.765 C14.249,10.765 10.850,14.164 10.850,18.358 C10.850,20.453 11.701,22.351 13.070,23.721 L13.075,23.721 C14.450,25.101 15.595,25.500 18.443,25.952 L18.443,25.952 C23.509,26.479 28.091,28.006 31.409,31.324 L31.409,31.324 C34.728,34.643 36.782,39.225 36.782,44.286 C36.782,54.412 28.569,62.625 18.443,62.625 C8.322,62.625 0.109,54.412 0.109,44.286 L10.850,44.286 C10.850,48.480 14.249,51.884 18.443,51.884 C22.638,51.884 26.042,48.480 26.042,44.286 C26.042,42.191 25.191,40.298 23.821,38.923 L23.816,38.923 C22.441,37.548 20.468,37.074 18.443,36.697 L18.443,36.692 C13.533,35.939 8.800,34.638 5.482,31.319 L5.482,31.319 L5.482,31.319 Z"/>
|
||||
|
||||
<path id="V" d="M 73.452,0.024 L60.482,62.625 L49.742,62.625 L36.782,0.024 L47.522,0.024 L55.122,36.687 L62.712,0.024 L73.452,0.024 Z"/>
|
||||
|
||||
<path id="G" d="M 91.792,25.952 L110.126,25.952 L110.126,44.286 L110.131,44.286 C110.131,54.413 101.918,62.626 91.792,62.626 C81.665,62.626 73.458,54.413 73.458,44.286 L73.458,44.286 L73.458,18.359 L73.453,18.359 C73.453,8.233 81.665,0.025 91.792,0.025 C101.913,0.025 110.126,8.233 110.126,18.359 L99.385,18.359 C99.385,14.169 95.981,10.765 91.792,10.765 C87.597,10.765 84.198,14.169 84.198,18.359 L84.198,44.286 L84.198,44.286 C84.198,48.481 87.597,51.880 91.792,51.880 C95.981,51.880 99.380,48.481 99.385,44.291 L99.385,44.286 L99.385,36.698 L91.792,36.698 L91.792,25.952 L91.792,25.952 Z"/>
|
||||
</g>
|
||||
</defs>
|
||||
|
||||
<path id="base" fill="#000" d="M8.5,150 H291.5 V250 C291.5,273.5 273.5,291.5 250,291.5 H50 C26.5,291.5 8.5,273.5 8.5,250 Z"/>
|
||||
<g stroke-width="38.0086" stroke="#000">
|
||||
<g id="svgstar" transform="translate(150, 150)">
|
||||
<path id="svgbar" fill="#ffb13b"
|
||||
d="M-84.1487,-15.8513 a22.4171,22.4171 0 1 0 0,31.7026 h168.2974 a22.4171,22.4171 0 1 0 0,-31.7026 Z"/>
|
||||
<use xlink:href="#svgbar" transform="rotate(45)"/>
|
||||
<use xlink:href="#svgbar" transform="rotate(90)"/>
|
||||
<use xlink:href="#svgbar" transform="rotate(135)"/>
|
||||
</g>
|
||||
</g>
|
||||
<use xlink:href="#svgstar"/>
|
||||
<use xlink:href="#base" opacity="0.85"/>
|
||||
<use xlink:href="#SVG"/>
|
||||
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 4.2 KiB |
66
default.nix
|
|
@ -1,66 +0,0 @@
|
|||
let
|
||||
hackageSrc = fetchTarball {
|
||||
url = "https://github.com/input-output-hk/hackage.nix/tarball/f95145a966a728f203c42b45bd7a101d067d5ec5";
|
||||
sha256 = "1grr6l68j1sn79ig6qgj19agqyb24j7iibrim4r6vk0pr9i104za";
|
||||
};
|
||||
# Stackage isn't used right now.
|
||||
stackageSrc = fetchTarball {
|
||||
url = "https://github.com/input-output-hk/stackage.nix/tarball/f319b88ce4d3c0880287a96b9c54626802df1eb5";
|
||||
sha256 = "1shwq0faphycs6b3i2phvj0ram242vh02wmr5h2spxin1lda2995";
|
||||
};
|
||||
haskellSrc = fetchTarball {
|
||||
url = "https://github.com/input-output-hk/haskell.nix/tarball/b406bb1d5bed581f651ae18a5d3ed07f47ace2b9";
|
||||
sha256 = "0lcb5p14097b1ya2flwkcbq65crc3k2fzb376bq8ck84i707shqi";
|
||||
};
|
||||
# haskellSrcMaster = builtins.fetchTarball https://github.com/input-output-hk/haskell.nix/archive/master.tar.gz;
|
||||
haskellNix = import haskellSrc {
|
||||
sourcesOverride = {
|
||||
hackage = hackageSrc;
|
||||
stackage = stackageSrc;
|
||||
};
|
||||
};
|
||||
|
||||
all-hies = fetchTarball {
|
||||
# Insert the desired all-hies commit here
|
||||
url = "https://github.com/infinisil/all-hies/tarball/534ac517b386821b787d1edbd855b9966d0c0775";
|
||||
# Insert the correct hash after the first evaluation
|
||||
sha256 = "0bw1llpwxbh1dnrnbxkj2l0j58s523hjivszf827c3az5i4py1i2";
|
||||
};
|
||||
|
||||
pkgs = import haskellNix.sources.nixpkgs-2003 (haskellNix.nixpkgsArgs // {
|
||||
overlays = haskellNix.nixpkgsArgs.overlays ++ [
|
||||
(import all-hies {}).overlay
|
||||
];
|
||||
});
|
||||
|
||||
set = pkgs.haskell-nix.cabalProject {
|
||||
name = "reanimate";
|
||||
compiler-nix-name = "ghc883";
|
||||
src = pkgs.haskell-nix.haskellLib.cleanGit {
|
||||
name = "reanimate";
|
||||
src = ./.;
|
||||
};
|
||||
};
|
||||
in set.reanimate.components.library // {
|
||||
env = set.shellFor {
|
||||
packages = p: [ p.reanimate ];
|
||||
# exactDeps = true;
|
||||
nativeBuildInputs = [ pkgs.stack
|
||||
pkgs.zlib.dev
|
||||
pkgs.zlib.out
|
||||
pkgs.gmp
|
||||
pkgs.gnome3.librsvg
|
||||
pkgs.blender
|
||||
pkgs.povray
|
||||
pkgs.ffmpeg
|
||||
pkgs.texlive.combined.scheme-full
|
||||
];
|
||||
tools = {
|
||||
cabal = "3.2.0.0";
|
||||
hie = "unstable";
|
||||
};
|
||||
shellHook = ''
|
||||
export HIE_HOOGLE_DATABASE=$(realpath "$(dirname "$(realpath "$(which hoogle)")")/../share/doc/hoogle/default.hoo")
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
# Revision history for discord-bot
|
||||
|
||||
## 0.1.0.0 -- YYYY-mm-dd
|
||||
|
||||
* First version. Released on an unsuspecting world.
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
This is free and unencumbered software released into the public domain.
|
||||
|
||||
Anyone is free to copy, modify, publish, use, compile, sell, or
|
||||
distribute this software, either in source code form or as a compiled
|
||||
binary, for any purpose, commercial or non-commercial, and by any
|
||||
means.
|
||||
|
||||
In jurisdictions that recognize copyright laws, the author or authors
|
||||
of this software dedicate any and all copyright interest in the
|
||||
software to the public domain. We make this dedication for the benefit
|
||||
of the public at large and to the detriment of our heirs and
|
||||
successors. We intend this dedication to be an overt act of
|
||||
relinquishment in perpetuity of all present and future rights to this
|
||||
software under copyright law.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
For more information, please refer to <http://unlicense.org>
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
import Distribution.Simple
|
||||
main = defaultMain
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
cabal-version: >=1.10
|
||||
-- Initial package description 'discord-bot.cabal' generated by 'cabal
|
||||
-- init'. For further documentation, see
|
||||
-- http://haskell.org/cabal/users-guide/
|
||||
|
||||
name: discord-bot
|
||||
version: 0.1.0.0
|
||||
-- synopsis:
|
||||
-- description:
|
||||
-- bug-reports:
|
||||
-- license:
|
||||
license-file: LICENSE
|
||||
author: David Himmelstrup
|
||||
maintainer: lemmih@gmail.com
|
||||
-- copyright:
|
||||
-- category:
|
||||
build-type: Simple
|
||||
extra-source-files: CHANGELOG.md
|
||||
|
||||
executable discord-bot
|
||||
main-is: Main.hs
|
||||
-- other-modules:
|
||||
-- other-extensions:
|
||||
build-depends: base >=4.10 && <5,
|
||||
process,
|
||||
directory,
|
||||
text,
|
||||
bytestring,
|
||||
ghcid,
|
||||
filepath,
|
||||
hashable,
|
||||
githash,
|
||||
time,
|
||||
mtl,
|
||||
unliftio,
|
||||
haskell-src-exts,
|
||||
discord-haskell
|
||||
hs-source-dirs: src
|
||||
default-language: Haskell2010
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
version: "3.8"
|
||||
services:
|
||||
bot:
|
||||
image: reanimate/discord-bot
|
||||
volumes:
|
||||
- .cache:/root/.cache
|
||||
# environment:
|
||||
# DISCORD_TOKEN: ''
|
||||
playground:
|
||||
image: reanimate/playground
|
||||
ports:
|
||||
- "10161:10161"
|
||||
- "10162:10162"
|
||||
volumes:
|
||||
- .cache:/root/.cache
|
||||
nginx:
|
||||
image: reanimate/nginx
|
||||
ports:
|
||||
- "80:80"
|
||||
- "443:443"
|
||||
volumes:
|
||||
- .cache/reanimate-playground:/var/www/html
|
||||
- ./certbot/conf:/etc/nginx/ssl
|
||||
- ./certbot/data:/var/www/certbot
|
||||
certbot:
|
||||
image: certbot/certbot:latest
|
||||
command: certonly --webroot --webroot-path=/var/www/certbot --email admin@clozecards.com --agree-tos --no-eff-email -d reanimate.clozecards.com
|
||||
volumes:
|
||||
- ./certbot/conf:/etc/letsencrypt
|
||||
- ./certbot/logs:/var/log/letsencrypt
|
||||
- ./certbot/data:/var/www/certbot
|
||||
watch:
|
||||
image: v2tec/watchtower
|
||||
command: --interval 1800
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
|
|
@ -1,296 +0,0 @@
|
|||
{-# LANGUAGE OverloadedStrings #-}
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
module Main (main) where
|
||||
|
||||
import Control.Applicative
|
||||
import UnliftIO.Concurrent (forkIO)
|
||||
import Control.Exception
|
||||
import Control.Monad
|
||||
import Control.Monad.Trans
|
||||
import Data.Bits
|
||||
import Data.ByteString (ByteString)
|
||||
import qualified Data.ByteString as BS
|
||||
import Data.Char (toLower)
|
||||
import Data.Hashable
|
||||
import Data.IORef
|
||||
import Data.Maybe
|
||||
import Data.Text (Text)
|
||||
import qualified Data.Text as T
|
||||
import qualified Data.Text.IO as T
|
||||
import Data.Time.Format
|
||||
import Discord
|
||||
import qualified Discord.Requests as R
|
||||
import Discord.Types
|
||||
import GitHash
|
||||
import Language.Haskell.Exts.Parser
|
||||
import Language.Haskell.Exts.Syntax (Exp)
|
||||
import Language.Haskell.Exts.SrcLoc (SrcSpanInfo)
|
||||
import Language.Haskell.Ghcid
|
||||
import System.Directory
|
||||
import System.Environment
|
||||
import System.Exit
|
||||
import System.FilePath
|
||||
import System.IO
|
||||
import System.Process
|
||||
import System.Timeout
|
||||
|
||||
gi :: GitInfo
|
||||
gi = $$tGitInfoCwd
|
||||
|
||||
botCommitDate :: UTCTime
|
||||
Just botCommitDate = parseTimeM
|
||||
True
|
||||
defaultTimeLocale
|
||||
"%a %b %e %X %Y %z" (giCommitDate gi)
|
||||
|
||||
botVersion :: Text
|
||||
botVersion = T.pack $
|
||||
formatTime defaultTimeLocale "%F" botCommitDate ++
|
||||
" (" ++ take 5 (giHash gi) ++ ")"
|
||||
|
||||
computeLimit :: Int
|
||||
computeLimit = 15 * 10^(6::Int) -- 15 seconds
|
||||
|
||||
-- Maximum size of error messages
|
||||
charLimit :: Int
|
||||
charLimit = 2000
|
||||
|
||||
memoryLimit :: String
|
||||
memoryLimit = "-M1G"
|
||||
|
||||
{- Commands:
|
||||
|
||||
>> code
|
||||
|
||||
:doc
|
||||
|
||||
:version
|
||||
|
||||
:clear-cache
|
||||
-}
|
||||
|
||||
main :: IO ()
|
||||
main = forever $ do
|
||||
-- Load library as compiled code. Documentation will not be available.
|
||||
let fastProc = proc "stack" ["exec", "ghci", "--rts-options="++memoryLimit]
|
||||
(fastGhci, _loads) <- startGhciProcess fastProc (\_stream msg -> putStrLn msg)
|
||||
|
||||
void $ exec fastGhci ":m + System.Environment"
|
||||
void $ exec fastGhci ":m + Reanimate Reanimate.Builtin.Documentation"
|
||||
void $ exec fastGhci ":m + Reanimate.Builtin.Images"
|
||||
void $ exec fastGhci ":m + Reanimate.Builtin.CirclePlot"
|
||||
void $ exec fastGhci ":m + Reanimate.Builtin.TernaryPlot"
|
||||
void $ exec fastGhci ":m + Reanimate.Morph.Common"
|
||||
void $ exec fastGhci ":m + Reanimate.Morph.Linear"
|
||||
void $ exec fastGhci ":m + Reanimate.Scene"
|
||||
void $ exec fastGhci "import Control.Lens hiding ((#), magma)"
|
||||
void $ exec fastGhci ":m + Codec.Picture.Types"
|
||||
void $ exec fastGhci ":set -XOverloadedStrings"
|
||||
|
||||
-- Load library as bytecode. Haddock documentation will be available.
|
||||
let slowProc = proc "stack" ["ghci", "--ghci-options=-haddock"]
|
||||
(slowGhci, _loads) <- startGhciProcess slowProc (\_stream msg -> putStrLn msg)
|
||||
|
||||
void $ exec slowGhci ":set -XOverloadedStrings"
|
||||
void $ exec slowGhci ":import Graphics.SvgTree as SVG"
|
||||
|
||||
args <- getArgs
|
||||
case args of
|
||||
["test"] -> do
|
||||
let assertIO action checker msg = do
|
||||
val <- action
|
||||
unless (checker val) $ do
|
||||
hPutStrLn stderr msg
|
||||
exitWith (ExitFailure 1)
|
||||
assertIO (pure botVersion) (not . T.null)
|
||||
"Missing git version"
|
||||
assertIO (exec fastGhci "1+2::Int") (==["3"])
|
||||
"Eval failed: 1+2"
|
||||
assertIO (exec fastGhci ":t reanimate") (==["reanimate :: Animation -> IO ()"])
|
||||
"Can't access reanimate, fast"
|
||||
assertIO (exec slowGhci ":t reanimate") (==["reanimate :: Animation -> IO ()"])
|
||||
"Can't access reanimate, docs"
|
||||
assertIO (exec slowGhci ":doc reanimate") (/=["<has no documentation>"])
|
||||
"Can't access docs"
|
||||
assertIO (findExecutable "latex") (/=Nothing)
|
||||
"latex is missing"
|
||||
assertIO (findExecutable "xelatex") (/=Nothing)
|
||||
"xelatex is missing"
|
||||
exitSuccess
|
||||
[] -> do
|
||||
tok <- getEnv "DISCORD_TOKEN"
|
||||
T.putStrLn =<< runDiscord def
|
||||
{ discordToken = T.pack tok
|
||||
, discordOnStart = startHandler
|
||||
, discordOnEvent = eventHandler fastGhci slowGhci
|
||||
, discordOnLog = \s -> T.putStrLn s >> T.putStrLn ""
|
||||
, discordForkThreadForEvents = False
|
||||
}
|
||||
_ -> do
|
||||
hPutStrLn stderr "Invalid arguments"
|
||||
exitWith (ExitFailure 1)
|
||||
|
||||
startHandler :: DiscordHandler ()
|
||||
startHandler = liftIO $ putStrLn "Ready!"
|
||||
|
||||
-- If an event handler throws an exception, discord-haskell will continue to run
|
||||
eventHandler :: Ghci -> Ghci -> Event -> DiscordHandler ()
|
||||
eventHandler fastGhci slowGhci event = case event of
|
||||
MessageCreate m | Just cmd <- parseCmd m, fromHuman m -> do
|
||||
case cmd of
|
||||
Animate script | not (isValidHaskell script) -> do
|
||||
liftIO $ putStrLn "Video failed!"
|
||||
void $ restCall (R.CreateReaction (messageChannel m, messageId m) "poop")
|
||||
void $ restCall (R.DeleteOwnReaction (messageChannel m, messageId m) "eyes")
|
||||
Right dm <- restCall (R.CreateDM (userId $ messageAuthor m))
|
||||
void $ restCall (R.CreateMessage (channelId dm) "Invalid Haskell expression")
|
||||
Animate script -> do
|
||||
liftIO $ putStrLn $ "Running script: " ++ T.unpack script
|
||||
_ <- forkIO $ void $ restCall (R.CreateReaction (messageChannel m, messageId m) "eyes")
|
||||
ret <- liftIO $ cachedRender fastGhci script
|
||||
case ret of
|
||||
Right vid -> do
|
||||
liftIO $ putStrLn "Video rendered!"
|
||||
void $ restCall (R.CreateMessageUploadFile (messageChannel m) "video.mp4" vid)
|
||||
-- let embed = CreateEmbed
|
||||
-- { createEmbedAuthorName = "" :: Text
|
||||
-- , createEmbedAuthorUrl = "" :: Text
|
||||
-- , createEmbedAuthorIcon = Nothing
|
||||
-- , createEmbedTitle = ""
|
||||
-- , createEmbedUrl = ""
|
||||
-- , createEmbedThumbnail = Nothing
|
||||
-- , createEmbedDescription = ""
|
||||
-- , createEmbedFields = []
|
||||
-- , createEmbedImage = Nothing
|
||||
-- , createEmbedFooterText = ""
|
||||
-- , createEmbedFooterIcon = Nothing
|
||||
-- , createEmbedVideo = Just (CreateEmbedVideoUpload vid)
|
||||
-- }
|
||||
-- void $ restCall (R.CreateMessageEmbed (messageChannel m) "video.mp4" embed)
|
||||
void $ restCall (R.DeleteOwnReaction (messageChannel m, messageId m) "eyes")
|
||||
Left err -> do
|
||||
liftIO $ putStrLn "Video failed!"
|
||||
Right dm <- restCall (R.CreateDM (userId $ messageAuthor m))
|
||||
void $ restCall (R.CreateMessage (channelId dm) err)
|
||||
void $ restCall (R.CreateReaction (messageChannel m, messageId m) "poop")
|
||||
void $ restCall (R.DeleteOwnReaction (messageChannel m, messageId m) "eyes")
|
||||
Version ->
|
||||
void $ restCall (R.CreateMessage (messageChannel m) botVersion)
|
||||
Doc expr -> do
|
||||
doc <- liftIO $ askDoc slowGhci expr
|
||||
void $ restCall (R.CreateMessage (messageChannel m) doc)
|
||||
Type expr -> do
|
||||
ty <- liftIO $ askType slowGhci expr
|
||||
void $ restCall (R.CreateMessage (messageChannel m) ty)
|
||||
Restart -> do
|
||||
void $ restCall (R.CreateMessage (messageChannel m) "Restarting...")
|
||||
stopDiscord
|
||||
_ -> pure ()
|
||||
|
||||
fromHuman :: Message -> Bool
|
||||
fromHuman = not . fromBot
|
||||
|
||||
fromBot :: Message -> Bool
|
||||
fromBot m = userIsBot (messageAuthor m)
|
||||
|
||||
data Command
|
||||
= Animate Text
|
||||
| Version
|
||||
| Doc Text
|
||||
| Type Text
|
||||
| Restart
|
||||
|
||||
parseCmd :: Message -> Maybe Command
|
||||
parseCmd m =
|
||||
Animate <$> T.stripPrefix ">> " t <|>
|
||||
(guard (T.map toLower t==":version") >> pure Version) <|>
|
||||
Doc . oneLine <$> T.stripPrefix ":doc " t <|>
|
||||
Type . oneLine <$> T.stripPrefix ":t " t <|>
|
||||
(guard (T.map toLower t==":restart") >> pure Restart)
|
||||
where
|
||||
t = messageText m
|
||||
oneLine = T.unwords . T.lines
|
||||
|
||||
renderVideo :: Ghci -> T.Text -> IO (Maybe Text)
|
||||
renderVideo ghci cmd = do
|
||||
let script =
|
||||
":{\n\
|
||||
\{-# LINE 1 \"discord\" #-}\n\
|
||||
\reanimate $ docEnv $ \
|
||||
\adjustDuration (min 10) \
|
||||
\(" ++ T.unpack cmd ++ "\n)\n\
|
||||
\:}"
|
||||
stderr <- newIORef []
|
||||
_ <- exec ghci ":set prog discord"
|
||||
_ <- exec ghci ":set args render --target video.mp4 --width 320 --fps 30"
|
||||
timer <- timeout computeLimit $ execStream ghci script $ \strm s ->
|
||||
when (strm == Stderr) $
|
||||
modifyIORef stderr (T.pack s:)
|
||||
if isNothing timer
|
||||
then do
|
||||
interrupt ghci
|
||||
return $ Just "timeout"
|
||||
else do
|
||||
err <- readIORef stderr
|
||||
if null err
|
||||
then return Nothing
|
||||
else return $ Just $ T.strip $ T.take charLimit $ T.unlines $ reverse err
|
||||
|
||||
askType :: Ghci -> Text -> IO Text
|
||||
askType ghci expr =
|
||||
T.strip . T.unlines . map T.pack <$> exec ghci (":type " ++ T.unpack expr)
|
||||
|
||||
askDoc :: Ghci -> Text -> IO Text
|
||||
askDoc ghci expr =
|
||||
cleanDocs . map T.pack <$> exec ghci (":doc " ++ T.unpack expr)
|
||||
|
||||
cleanDocs :: [Text] -> Text
|
||||
cleanDocs = T.strip . T.unlines . worker . map T.strip
|
||||
where
|
||||
worker (x:xs) | T.null x = worker xs
|
||||
worker (x:y:xs)
|
||||
| T.null y || ">" `T.isPrefixOf` y = x : worker xs
|
||||
| otherwise = worker (x <> " " <> y : xs)
|
||||
worker (x:xs) = x : worker xs
|
||||
worker [] = []
|
||||
|
||||
cachedRender :: Ghci -> Text -> IO (Either Text ByteString)
|
||||
cachedRender ghci cmd = do
|
||||
root <- getXdgDirectory XdgCache "reanimate-bot"
|
||||
createDirectoryIfMissing True root
|
||||
let path = root </> encodeInt (hash cmd) <.> "mp4"
|
||||
hit <- doesFileExist path
|
||||
if hit
|
||||
then do
|
||||
putStrLn "Cache hit"
|
||||
vid <- BS.readFile path
|
||||
return $ Right vid
|
||||
else do
|
||||
putStrLn "Cache miss"
|
||||
ret <- renderVideo ghci cmd
|
||||
case ret of
|
||||
Just err -> return $ Left err
|
||||
Nothing -> do
|
||||
-- can't use 'renameFile' because cache might be mounted separately.
|
||||
copyFile "video.mp4" path
|
||||
removeFile "video.mp4"
|
||||
vid <- BS.readFile path
|
||||
return $ Right vid
|
||||
|
||||
|
||||
encodeInt :: Int -> String
|
||||
encodeInt i = worker (fromIntegral i) 60
|
||||
where
|
||||
worker :: Word -> Int -> String
|
||||
worker key sh
|
||||
| sh < 0 = []
|
||||
| otherwise =
|
||||
case (key `shiftR` sh) `mod` 64 of
|
||||
idx -> alphabet !! fromIntegral idx : worker key (sh-6)
|
||||
alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+$"
|
||||
|
||||
isValidHaskell :: Text -> Bool
|
||||
isValidHaskell txt =
|
||||
case parse (T.unpack txt) :: ParseResult (Exp SrcSpanInfo) of
|
||||
ParseOk{} -> True
|
||||
ParseFailed{} -> False
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
resolver: lts-16.31
|
||||
|
||||
allow-newer: false
|
||||
|
||||
packages:
|
||||
- .
|
||||
|
||||
extra-deps:
|
||||
- discord-haskell-1.8.0
|
||||
- emoji-0.1.0.2@sha256:d995572a5c7dcd28f98eb15c6e387a7b3bda1ac2477ab0d9dba8580d5d7b161f,1273
|
||||
- req-3.1.0@sha256:b058fd588ccdbced9e7d33b9112cd41960f29ce90acc7d77e2dd7518da171a01,4926
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
# This file was autogenerated by Stack.
|
||||
# You should not edit this file by hand.
|
||||
# For more information, please see the documentation at:
|
||||
# https://docs.haskellstack.org/en/stable/lock_files
|
||||
|
||||
packages:
|
||||
- completed:
|
||||
hackage: discord-haskell-1.8.0@sha256:420515069c5be313dd31d16e9a4b163d2b3fdda18ba18e98cbb0b0536cbae136,3562
|
||||
pantry-tree:
|
||||
size: 2108
|
||||
sha256: 2d32f71b9d3e32f797ad6d614d748b491350ff0febb7e7bfc6f7fb595d752a0d
|
||||
original:
|
||||
hackage: discord-haskell-1.8.0
|
||||
- completed:
|
||||
hackage: emoji-0.1.0.2@sha256:d995572a5c7dcd28f98eb15c6e387a7b3bda1ac2477ab0d9dba8580d5d7b161f,1273
|
||||
pantry-tree:
|
||||
size: 437
|
||||
sha256: dd9ea90a631342e5db0fc21331ade4d563a685e9125d5a3989eefa8e1b96c6c6
|
||||
original:
|
||||
hackage: emoji-0.1.0.2@sha256:d995572a5c7dcd28f98eb15c6e387a7b3bda1ac2477ab0d9dba8580d5d7b161f,1273
|
||||
- completed:
|
||||
hackage: req-3.1.0@sha256:b058fd588ccdbced9e7d33b9112cd41960f29ce90acc7d77e2dd7518da171a01,4926
|
||||
pantry-tree:
|
||||
size: 712
|
||||
sha256: 060ee6b5a2f16b369cbb4fb27c33412eeb5e7a2a29d66f33046436f483695843
|
||||
original:
|
||||
hackage: req-3.1.0@sha256:b058fd588ccdbced9e7d33b9112cd41960f29ce90acc7d77e2dd7518da171a01,4926
|
||||
snapshots:
|
||||
- completed:
|
||||
size: 534126
|
||||
url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/16/31.yaml
|
||||
sha256: 637fb77049b25560622a224845b7acfe81a09fdb6a96a3c75997a10b651667f6
|
||||
original: lts-16.31
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
# October 2020
|
||||
|
||||
## Font support in $\LaTeX$
|
||||
|
||||
Made it easier to use built-in LaTeX fonts as well as TTF/OTF font files.
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
|
|
@ -1 +0,0 @@
|
|||
{!docs/changelog-2020-10.md!}
|
||||
|
Before Width: | Height: | Size: 827 KiB |
|
Before Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 49 KiB |
|
Before Width: | Height: | Size: 45 KiB |
|
|
@ -1,53 +0,0 @@
|
|||
# Discord bot overview
|
||||
|
||||
The **reanimate** discord bot has two functions:
|
||||
|
||||
1. Render short animation snippets.
|
||||
2. Serve up reanimate documentation.
|
||||
|
||||
The bot listens for lines that start with `>>` and renders expressions of
|
||||
type `Animation`:
|
||||
|
||||
<video style="width:100%; max-width: 640px" muted autoplay loop>
|
||||
<source src="https://i.imgur.com/o45cT8r.mp4">
|
||||
</video>
|
||||
|
||||
Animations are capped at 10 seconds, and each expression
|
||||
is only allocated 15 seconds of CPU time and 1GB of memory.
|
||||
|
||||
The bot also has access to the latest haddock documentation. Typing `:doc identifier`
|
||||
will print out the documentation associated with the identifier:
|
||||
|
||||
<video style="width:100%; max-width: 640px" muted autoplay loop>
|
||||
<source src="https://i.imgur.com/poeC7S4.mp4">
|
||||
</video>
|
||||
|
||||
<br/>
|
||||
|
||||
The discord server is open to everyone so feel free to join and have a chat with the bot: <https://discord.gg/Qs28Dv6>
|
||||
|
||||
# Continuous deployment
|
||||
|
||||
Reanimate is a rapidly moving target and the bot would quickly get out-of-date
|
||||
if it wasn't automatically updated. Keeping the bot up-to-date happens in 6 steps:
|
||||
|
||||
1. Source management: Github<br/>
|
||||
Code changes to start out as pull-requests on [GitHub](https://github.com/reanimate/reanimate/pulls). Here the changes will be reviewed and tested before they can be merged into the main branch.<br/>
|
||||
The [bot source code](https://github.com/reanimate/reanimate/tree/master/discord-bot) lives in the same repository as the reanimate library and follows the same procedures.
|
||||
|
||||
2. Regression testing: Azure Pipelines<br/>
|
||||
Reanimate is a multi-platform library and has to work on Linux, Mac OS, and Windows. To make sure there are no regressions, [Azure Pipelines](https://dev.azure.com/lemmih0612/reanimate/_build?definitionId=2&_a=summary) is used run the test suite cross all platforms and with several different configurations.
|
||||
|
||||
3. Image building: Docker Cloud<br/>
|
||||
Once a pull-request has been merged into the main branch, an image build is triggered on [Docker Hub](https://hub.docker.com/repository/docker/reanimate/discord-bot). This image will contain the latest version of reanimate as well as the fully configured discord bot, ready to be deployed.
|
||||
|
||||
4. Static tests<br/>
|
||||
Before the image is uploaded to Docker Hub, several consistency checks are performed to ensure that animations can be rendered, the documentation has been built, and external dependencies are available. If any of the consistency checks fail then the image will be discarded.
|
||||
|
||||
5. Watchtower<br/>
|
||||
When a new image becomes available, watchtower will automatically stop the old container and start the new bot. Watchtower does not receive push notifications from Docker Hub but instead looks for updates every 5 minutes, adding a bit of latency to the pipeline.
|
||||
|
||||
6. Prune<br/>
|
||||
The last step is the periodically prune old images and containers from docker. Without this step, old date would slowly accumulate until the disk drive is full.
|
||||
|
||||
These 6 steps together make up a pipeline that ensures the reanimate discord bot is always running with the latest code and documentation. The time from a patch landing in the main branch until a new bot is deployed is roughly 30 minutes and requires no human intervention.
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
pre code {
|
||||
white-space: pre !important;
|
||||
}
|
||||
body {
|
||||
text-align: justify;
|
||||
}
|
||||
nav {
|
||||
text-align: initial;
|
||||
}
|
||||
|
|
@ -1,101 +0,0 @@
|
|||
# Font Catalogue
|
||||
|
||||
The [$\LaTeX$ font catalogue](https://tug.org/FontCatalogue/) is a listing of a wide variety of fonts with examples. Let's explore how to use those fonts in Reanimate.
|
||||
|
||||
## Fetamont
|
||||
|
||||
Go to <https://tug.org/FontCatalogue/fetamont/> and look under the `Usage` section. There you can find $\LaTeX$ preamble code and style selector code. The preamble looks like this:
|
||||
```
|
||||
\usepackage{fetamont}
|
||||
\usepackage[T1]{fontenc}
|
||||
```
|
||||
And the style selector looks like this: `\ffmfamily`
|
||||
|
||||
Armed with this information, we can create a TeX configuration in Reanimate:
|
||||
|
||||
<pre class="interactive">
|
||||
fetamont = TexConfig LaTeX
|
||||
["\\usepackage{fetamont}"
|
||||
,"\\usepackage[T1]{fontenc}"]
|
||||
["\\ffmfamily"]
|
||||
|
||||
animation :: Animation
|
||||
animation = scene $
|
||||
showCfg "Fetamont" fetamont
|
||||
|
||||
{!docs/font_script.hs!}
|
||||
</pre>
|
||||
|
||||
<br/>
|
||||
|
||||
## Inconsolata
|
||||
|
||||
Configuration code for Inconsolata can be found here: <https://tug.org/FontCatalogue/inconsolata/>
|
||||
|
||||
<pre class="interactive">
|
||||
inconsolata = TexConfig LaTeX
|
||||
["\\usepackage{inconsolata}"
|
||||
,"\\renewcommand*\\familydefault{\\ttdefault}"
|
||||
,"\\usepackage[T1]{fontenc}"]
|
||||
["\\normalfont"]
|
||||
|
||||
animation :: Animation
|
||||
animation = scene $
|
||||
showCfg "Inconsolata" inconsolata
|
||||
|
||||
{!docs/font_script.hs!}
|
||||
</pre>
|
||||
|
||||
<br/>
|
||||
|
||||
## Computer Modern
|
||||
|
||||
[Computer modern](https://tug.org/FontCatalogue/computermodern/) is the default font. It's presented here as a reference and as a point of comparison.
|
||||
|
||||
<pre class="interactive">
|
||||
-- Default font so no need to do anything.
|
||||
computerModern = TexConfig LaTeX
|
||||
[]
|
||||
[]
|
||||
|
||||
animation :: Animation
|
||||
animation = scene $
|
||||
showCfg "Computer Modern" computerModern
|
||||
|
||||
{!docs/font_script.hs!}
|
||||
</pre>
|
||||
|
||||
<br/>
|
||||
|
||||
## Missing fonts
|
||||
|
||||
Fonts only work if they are installed in your TeX setup. If a font is missing, you'll get a cryptic error message like this:
|
||||
|
||||
<pre class="interactive">
|
||||
clayTablet = TexConfig LaTeX
|
||||
["\\usepackage{fontspec}"
|
||||
,"\\setmainfont{QTClaytablet}"]
|
||||
["\\normalfont"]
|
||||
|
||||
animation :: Animation
|
||||
animation = scene $
|
||||
showCfg "Claytablet" clayTablet
|
||||
|
||||
{!docs/font_script.hs!}
|
||||
</pre>
|
||||
|
||||
<br/>
|
||||
|
||||
<script>
|
||||
setTimeout(function () {
|
||||
const pres = document.querySelectorAll(".interactive");
|
||||
var delay=0;
|
||||
for(var i=0; i<pres.length; i++) {
|
||||
const elt = pres[i];
|
||||
setTimeout(function() {
|
||||
embedPlayground(elt);
|
||||
},delay);
|
||||
delay += 0;
|
||||
}
|
||||
},0);
|
||||
</script>
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
showCfg :: T.Text -> TexConfig -> Scene s ()
|
||||
showCfg name cfg = do
|
||||
let title = scale 2 $ center $
|
||||
latexCfg cfg name
|
||||
line1 = center $ latexCfg cfg
|
||||
"Pack My Box"
|
||||
line2 = center $ latexCfg cfg
|
||||
"With Five Dozen"
|
||||
line3 = center $ latexCfg cfg
|
||||
"Liquour Jugs"
|
||||
|
||||
header <- oNew title
|
||||
oModify header $
|
||||
oTopY .~ screenTop
|
||||
oShow header
|
||||
|
||||
l1 <- oNew line1
|
||||
l1 `oBelow` header
|
||||
oShow l1
|
||||
|
||||
l2 <- oNew line2
|
||||
l2 `oBelow` l1
|
||||
oShow l2
|
||||
|
||||
l3 <- oNew line3
|
||||
l3 `oBelow` l2
|
||||
oShow l3
|
||||
wait 1
|
||||
|
||||
oBelow a b = do
|
||||
aBot <- oRead b oBottomY
|
||||
oModifyS a $ do
|
||||
oMarginTop .= 0
|
||||
oTopY .= aBot
|
||||
|
|
@ -1,92 +0,0 @@
|
|||
# OTF and TTF fonts
|
||||
|
||||
Fonts files are often found in zip archives or tarballs and Reanimate can download them for you. Let's look at [Magnolia Script](https://www.dafont.com/magnolia-script.font) as an example. It's a free OTF font, available for download in a zip-file: <https://dl.dafont.com/dl/?f=magnolia_script>
|
||||
|
||||
We'll use the `zipArchive` function for downloading and unpacking the file. For safety reasons, we have to specify the SHA256 hash of the file we're downloading. This prevents unexpected changes. We can use an incorrect hash value to find the real checksum:
|
||||
|
||||
```haskell
|
||||
magnoliaFont :: FilePath
|
||||
magnoliaFont = zipArchive
|
||||
"https://dl.dafont.com/dl/?f=magnolia_script"
|
||||
"missing"
|
||||
```
|
||||
|
||||
When we use an incorrect hash value, we'll get an error message like this:
|
||||
|
||||
```text
|
||||
Exception: URL https://dl.dafont.com/dl/?f=magnolia_script
|
||||
Expected SHA256: missing
|
||||
Actual SHA256: XeXawkqqnSPgxK7G72RdL39ddKPrrLPCwJB7dojuulc=
|
||||
```
|
||||
|
||||
Copy-pasting the actual SHA256 value gives us the proper code for downloading the Magnolia Script font:
|
||||
|
||||
```haskell
|
||||
magnoliaFont :: FilePath
|
||||
magnoliaFont = zipArchive
|
||||
"https://dl.dafont.com/dl/?f=magnolia_script"
|
||||
"XeXawkqqnSPgxK7G72RdL39ddKPrrLPCwJB7dojuulc="
|
||||
```
|
||||
|
||||
Next we'll use the font folder in a TeX configuration:
|
||||
|
||||
```haskell
|
||||
magnolia = TexConfig {
|
||||
texConfigEngine = XeLaTeX,
|
||||
texConfigHeaders =
|
||||
[ "\\usepackage[no-math]{fontspec}",
|
||||
"\\setmainfont[\
|
||||
\Mapping=tex-text,\
|
||||
\Path={" <> T.pack magnoliaFont <> "/},\
|
||||
\Extension=.otf]\
|
||||
\{Magnolia Script}"
|
||||
],
|
||||
texConfigPostScript = [] }
|
||||
```
|
||||
|
||||
The `magnolia` configuration is ready for formatting text:
|
||||
|
||||
<pre class="interactive">
|
||||
magnoliaFont :: FilePath
|
||||
magnoliaFont = zipArchive
|
||||
"https://dl.dafont.com/dl/?f=magnolia_script"
|
||||
"XeXawkqqnSPgxK7G72RdL39ddKPrrLPCwJB7dojuulc="
|
||||
|
||||
magnolia = TexConfig {
|
||||
texConfigEngine = XeLaTeX,
|
||||
texConfigHeaders =
|
||||
[ "\\usepackage[no-math]{fontspec}",
|
||||
"\\setmainfont[\
|
||||
\Mapping=tex-text,\
|
||||
\Path={" <>
|
||||
T.pack magnoliaFont <>
|
||||
"/},\
|
||||
\Extension=.otf]\
|
||||
\{Magnolia Script}"
|
||||
],
|
||||
texConfigPostScript = [] }
|
||||
|
||||
animation :: Animation
|
||||
animation = scene $
|
||||
showCfg "Magnolia" magnolia
|
||||
|
||||
{!docs/font_script.hs!}
|
||||
</pre>
|
||||
|
||||
|
||||
|
||||
<br/>
|
||||
|
||||
<script>
|
||||
setTimeout(function () {
|
||||
const pres = document.querySelectorAll(".interactive");
|
||||
var delay=0;
|
||||
for(var i=0; i<pres.length; i++) {
|
||||
const elt = pres[i];
|
||||
setTimeout(function() {
|
||||
embedPlayground(elt);
|
||||
},delay);
|
||||
delay += 0;
|
||||
}
|
||||
},0);
|
||||
</script>
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
# Fonts and svg text nodes
|
||||
|
||||
# Fonts and $\LaTeX$
|
||||
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
ROOT=`stack path --project-root`
|
||||
|
||||
TINY='^(doc_turbo|doc_viridis|doc_magma|doc_inferno|doc_plasma|doc_sinebow|doc_cividis|doc_jet|
|
||||
newline|doc_hsvMatlab|doc_greyscale|doc_parula|doc_rgbComponents|doc_hsvComponents|
|
||||
newline|doc_hsv|doc_lchComponents|doc_xyzComponents|doc_labComponents)$'
|
||||
|
||||
SQUARE='^(doc_withViewBox)$'
|
||||
|
||||
cd $ROOT/examples/
|
||||
for src in $ROOT/examples/doc_*.hs; do
|
||||
BASE=`basename $src .hs`
|
||||
DST=$ROOT/docs/gifs/$BASE.gif
|
||||
if [[ "$src" -nt "$DST" ]]; then
|
||||
if [[ "$BASE" =~ $TINY ]]; then
|
||||
echo "stack $src render -o $DST --width=320 --height=50"
|
||||
stack $src render -o $DST --width=320 --height=50
|
||||
elif [[ "$BASE" =~ $SQUARE ]]; then
|
||||
echo "stack $src render -o $DST --width=180 --height=180"
|
||||
stack $src render -o $DST --width=180 --height=180
|
||||
else
|
||||
echo "stack $src render -o $DST"
|
||||
stack $src render -o $DST
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 61 KiB |
|
Before Width: | Height: | Size: 432 KiB |
|
Before Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 5.8 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 6.5 KiB |
|
Before Width: | Height: | Size: 193 KiB |
|
Before Width: | Height: | Size: 466 KiB |
|
Before Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 46 KiB |
|
Before Width: | Height: | Size: 6.4 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 5.5 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 4.1 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 5.5 KiB |
|
Before Width: | Height: | Size: 5.9 KiB |
|
Before Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 50 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 397 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 4.4 KiB |
|
Before Width: | Height: | Size: 5 KiB |
|
Before Width: | Height: | Size: 5.5 KiB |
|
Before Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 4 KiB |
|
Before Width: | Height: | Size: 4.8 KiB |
|
Before Width: | Height: | Size: 5.5 KiB |
|
Before Width: | Height: | Size: 5.5 KiB |
|
Before Width: | Height: | Size: 5.5 KiB |
|
Before Width: | Height: | Size: 5.5 KiB |