To build this library you will need the following: SWIG (Tested with Versions 4.0.1 and 4.0.2) libflint-arb-dev along with its dependencies (Tested with 2.19.0) JDK (Tested with jdk-17 from Oracle) Once you have acquired these, run the bash script in the bin/ subdirectory called "gaw" which stands for "generate arblib wrapper", which will then cause the .i files in the native/ subdirectory to be parsed with SWIG and the corresponding java and C source files are generated. After that happens, the script then calls the bin/caw which stands for "compile arblib wrapper" which, if all goes well, should leave a file named libarblib.so in root directory of the project The output should look this if all goes well. stephen@msi:~/arb4j$ gaw + readlink -f /home/stephen/fm/bin/gaw + dirname /home/stephen/git/arb4j/bin/gaw + BASEDIR=/home/stephen/git/arb4j/bin/.. + cd /home/stephen/git/arb4j/bin/.. + export INCLUDES=-I/usr/include/x86_64-linux-gnu -I/usr/include/linux -I/usr/include/flint -I/usr/include -I/usr/include/i386-linux-gnu -I/usr/lib/gcc/x86_64-linux-gnu/11/include/ + swig -debug-classes -v -java -package arblib -outdir src/arblib -I/usr/include/x86_64-linux-gnu -I/usr/include/linux -I/usr/include/flint -I/usr/include -I/usr/include/i386-linux-gnu -I/usr/lib/gcc/x86_64-linux-gnu/11/include/ native/arb.i Language subdirectory: java Search paths: ./ /usr/include/x86_64-linux-gnu/ /usr/include/linux/ /usr/include/flint/ /usr/include/ /usr/include/i386-linux-gnu/ /usr/lib/gcc/x86_64-linux-gnu/11/include// ./swig_lib/java/ /usr/share/swig4.0/java/ ./swig_lib/ /usr/share/swig4.0/ Preprocessing... Starting language-specific parse... Processing unnamed structs... Processing types... C++ analysis... Generating wrappers... Classes ------------ arf_interval_struct mag_struct acb_struct dirichlet_group_struct dirichlet_char_struct dirichlet_prime_group_struct arb_struct mantissa_noptr_struct mantissa_ptr_struct mantissa_struct arf_struct __mpfr_struct acb_poly_struct + /home/stephen/git/arb4j/bin/../bin/caw + export JAVA_HOME=/usr/lib/jvm/jdk-17 + readlink -f /home/stephen/git/arb4j/bin/../bin/caw + dirname /home/stephen/git/arb4j/bin/caw + export BASEDIR=/home/stephen/git/arb4j/bin/.. + cd /home/stephen/git/arb4j/bin/.. + export INCLUDES=-I/usr/lib/jvm/jdk-17/include -I/usr/lib/jvm/jdk-17/include/linux + export SOURCES=native/complex_plot.c native/arb_wrap.c + gcc -O3 -fPIC -shared native/complex_plot.c native/arb_wrap.c -I/usr/lib/jvm/jdk-17/include -I/usr/lib/jvm/jdk-17/include/linux -olibarblib.so -lflint-arb If that looks good, then go ahead and run "mvn install" or just open the project in Eclipse with the CDT (and Groovy) packages installed and let the builder call gaw/caw for you and open the progam "Zplot" or run the script bin/updateClasspath before running bin/Zplot to run the program from the console Stephen Crowley Feb 17th, 2022
A high-performance Java API wrapper for arblib, the fantastic and amazing arbitrary-precision ball arithmetic C library, implemented via SWIG
Overview
Comments
-
algebraic expression parser, evaluator and compiler
this differentiate() method here that returns a ComplexFunction is just syntatic sugar, it would be really cool to actually implement Automatic Differentiation and synthesizing the runtime code on the fly from the generated derivative expressions with some java virtual machine opcode instructions rather than having to write the code in java by hand
-
git tracks the output of swig
One time I was messing around and upon running bin/gaw somehow triggered Swig to update the version of the arb wrapper, which modified many files in src/arb/ that were being tracked by Git.
Given: any files that are generated from other tracked files (and that the developer would not modify) should not be tracked by Git and should be matched in the project .gitignore file.
Suggestion: add the files generated by Swig to .gitignore, or give them their own directory under src/arb/ and ignore that directory.
-
use 'foreign memory' Incubator module instead of JNI to alleviate the problems preventing large animations from being rendered within a single JVM
currently animation rendering crashes because of this and I refuse to have to start and stop the JVM a bunch of times over what is a design flaw with regards there being no way to explicitly unmap the byte buffer from java
-
project gitignore files contain user-specific patterns
Some .gitignore files in the project seem to match editor-specific temp files. For example,
native/.gitignore
contains the pattern/arb.i~
https://git-scm.com/docs/gitignore :
Which file to place a pattern in depends on how the pattern is meant to be used.
-
Patterns which should be version-controlled and distributed to other repositories via clone (i.e., files that all developers will want to ignore) should go into a .gitignore file.
-
Patterns which are specific to a particular repository but which do not need to be shared with other related repositories (e.g., auxiliary files that live inside the repository but are specific to one user’s workflow) should go into the $GIT_DIR/info/exclude file.
-
Patterns which a user wants Git to ignore in all situations (e.g., backup or temporary files generated by the user’s editor of choice) generally go into a file specified by core.excludesFile in the user’s ~/.gitconfig. Its default value is $XDG_CONFIG_HOME/git/ignore. If $XDG_CONFIG_HOME is either not set or empty, $HOME/.config/git/ignore is used instead.
Suggestions:
- Reserve project .gitignore files only for stuff that every user should ignore, like build artifacts.
- Keep user-specific patterns in your personal
$HOME/.config/git/ignore
. For instance, match any file that ends in a tilde with this pattern:*~
Bonus suggestion: probably only need one .gitignore file for the entire project, easier to keep track of things that way
-
-
Lame coefficients & orthogonal nets
API to support calculation of the Lamé coefficients of an orthogonal curvilinear coordinate system u,v,w in space. In terms of the Lamé coefficients in the coordinates u,v,w one can express
- the element of arc length
- the element of surface area and
- the volume element
-
Changeable color scheme(Caching function values)
use memory mapped byte buffers as a first step then initialize new Complex objects pointing to some offset within the buffer. Then remains the part to specify a custom GMP allocator based on a similiar idea of a heap based on a direct memory mapped file offset
-
bin scripts style & portability
After issue-117 branch is merged, make the other arb4j/bin/ scripts as stylish and portable as bin/gaw and bin/caw.
Warning: these scripts call some commands that imply undocumented dependencies, such as valgrind, mvn (Maven), and dict.
-
Issue 117: build portability
closes #117
Made changes to improve the build and enhance portability. Tested the build on Ubuntu 20 and Debian 11, ensured that JAVA_PATH is detected correctly, and that whitespace in JAVA_HOME and the project base path are handled correctly.
P.S.: I realize that the level of detail might be a bit uncalled for here. Learning shell and make has been a pet project of mine, and I really wanted to unleash it into the wild. However, if my pet causes any trouble then it goes right back into the crate.
...and the way to stay with the future as it moves is to always play your systems more grand than they seem to be right now.
Alan Kay at OOPSLA 1997. The Computer Revolution Hasn't Happened Yet
-
Lemniscate elliptic functions - Wikipedia
https://en.m.wikipedia.org/wiki/Lemniscate_elliptic_functions Compare hypergeometric function implementation for arclength of lemniscate to numeric integration
-
Create latex expression rendered within Eclipse JDT editor
http://help.eclipse.org/2022-03/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fextension-points%2Forg_eclipse_ui_workbench_texteditor_codeMiningProviders.html&resultof%3D%2522%2563%256f%2564%2565%2522%2520%2522%256d%2569%256e%2569%256e%2567%2522%2520%2522%256d%2569%256e%2565%2522%2520
Open Weather Map API wrapper for Java.
Java Open Weather API Wrapper Open Weather Map API wrapper for Java. This project allows you to seamlessly implement the Open Weather Map API into you
💠 Undecorated JavaFX Scene with implemented move, resize, minimise, maximise, close and Windows Aero Snap controls.
Support me joining PI Network app with invitation code AlexKent FX-BorderlessScene ( Library ) ?? Undecorated JavaFX Scene with implemented move, resi
A collection of Apple UI controls implemented in JavaFX.
Apple FX A collection of Apple UI controls implemented in JavaFX. Available Macos controls: MacosButton MacosCheckBox MacosRadioButton MacosLabel Maco
Glucose status monitor for Nightscout implemented in JavaFX
GlucoStatusFX A glucose status monitor for Nightscout implemented in JavaFX. Donations are welcome at Paypal Intro GlucoStatusFX is a JavaFX applicati
A low intrusive, configurable android library that converts layout XML files into Java code to improve performance
qxml English 一个低侵入,可配置的 Android 库,用于将 layout xml 文件转换为 Java 代码以提高性能。 与X2C的对比 X2C: 使用注解处理器生成View类,使用时需要在类中添加注解,并替换setContentView方法,侵入性较强; 对于布局属性的支持不够完美
A scientific charting library focused on performance optimised real-time data visualisation at 25 Hz update rates for data sets with a few 10 thousand up to 5 million data points.
ChartFx ChartFx is a scientific charting library developed at GSI for FAIR with focus on performance optimised real-time data visualisation at 25 Hz u
Provides a Java API to use the JavaScript library d3.js with the JavaFx WebView
javafx-d3 Provides a Java API for using the JavaScript library d3.js with JavaFx Applications. Many thanks to the authors of the projects gwt-d3 [1] a
Flash cards app using JavaFX, Scene Builder and persistence using Serialization with JAVA IO API
Flashcards - JavaFX , Scene Builder, Serialized Persistence JAVA IO API Main Scene that will show all the Decks in Flash Card App Add or Edit Cards in
In the Developer - Platform of EdgeGallery, we have provided a lot of useful APIs, in this project, try to simulates APIs of the competence center to help develoers test API request and response online.
api-emulator api-emulator模块,为EdgeGallery提供了基本能力的模拟api,开发者可以调用该模拟器提供的api,不需要真实部署就可以查看平台已有的能力。目前该api-emulator集成了两种平台能力:位置服务和人脸识别能力。 平台能力简介 位置服务 提供用户位置,E
A powerful 🚀 Android chart view / graph view library, supporting line- bar- pie- radar- bubble- and candlestick charts as well as scaling, panning and animations.
⚡ A powerful & easy to use chart library for Android ⚡ Charts is the iOS version of this library Table of Contents Quick Start Gradle Maven Documentat
This is a clone of Mircosoft Paint that uses Java and its javax.swing library
PaintClone This is a clone of Mircosoft Paint that uses Java and its javax.swing library You are able to select a RBG colors and creates a pallet of t
A simple implementation of the Android In-App Billing API.
Google In-App Billing Library v4+ A simple implementation of the Android In-App Billing API. It supports: in-app purchases (both consumable and non-co
Open API demo for CloudQuery
open-api-demo This project is an example for CloudQuery Community, which can assist community users in code development such as organizational structu
Everest - an upcoming REST API testing client written in JavaFX
Everest (formerly RESTaurant) is an upcoming REST API testing client written in JavaFX. Everest running on Windows 10. Why Everest? Everest is written
A JavaFX 3D Visualization and Component Library
FXyz3D FXyz3D Core: FXyz3D Client: FXyz3D Importers: A JavaFX 3D Visualization and Component Library How to build The project is managed by gradle. To
A library for creating and editing graph-like diagrams in JavaFX.
Graph Editor A library for creating and editing graph-like diagrams in JavaFX. This project is a fork of tesis-dynaware/graph-editor 1.3.1, which is n
Flow Visualization Library for JavaFX and VRL-Studio
VWorkflows Interactive flow/graph visualization for building domain specific visual programming environments. Provides UI bindings for JavaFX. See htt
Simple, maintained and highly customizable colorpicker library for Android.
Colorpicker Library for Android Simple, maintained and highly customizable color picker library for Android. It is packed with ColorPicker Popup, Colo
A library that allows you to integrate questions utilizing checkboxes that allow for a great user experience. There is full customization of the question views, allowing for seamless integration of a question into your apps UI. There are multiple types of questions that help you make simple questionaries to quizzes with multiple choice and multiple answer questions.
CheckboxQuestions CheckboxQuestions is a library that provides with different forms of asking questions. So far there are YesOrNoQuestions, MultipleCh