-
-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ClassNotFoundException - JLOptions #2
Comments
JLOptions is a class that is included with the jar and based on C struct definition exposed via julia.h. It describes the command line options that libjulia was initialized with. There is a new ffi system that is much cleaner and more portable than the pure jna-based system - it would be nice to upgrade libjulia-clj to that version. I think for this case there is a dependency conflict. Could you post your |
My project.clj is shown below. I only removed the :java-source-paths ["java"] line since with that I had a build issue. I'm using a binary I'm new to both clojure and julia so I don't really know my (defproject cnuernber/libjulia-clj "0.08-SNAPSHOT"
|
Here's my lein deps :tree - PS C:\java_tools\julia\workspace\libjulia-clj> lein deps :tree Consider using these exclusions: [org.clojure/clojure "1.10.1"] -> [org.clojure/spec.alpha "0.2.176"] Consider using these exclusions: [ch.qos.logback/logback-classic "1.2.3" :scope "test"] |
Following. I'll see if I can take a closer look this weekend. |
So, the issue is that the libjulia project is a mixed java/clj project. Be removing the java-source-paths from the project file you are no longer compiling the java classes - one of which is JLOptions.java. What happens when you try the clojars release of libjulia-clj? I added an activate-julia script and updated the example project to use the clojars julia jar file and it produced the fractal correctly so I think the issue is a configuration issue. |
I downloaded source for both java (11-15u) and julia (1.6.2) and neither one had the I'm looking forward to getting this worked out so that I can work on combined
|
JLOptions.java is at https://github.com/cnuernber/libjulia-clj/blob/master/java/julia_clj/JLOptions.java |
Chris,
I'm getting back to your clojure/julia interface. I'm using Windows 10.
I tried the following without getting your interface to work:
user=> (require '[libjulia-clj.julia :as julia])
Syntax error (FileNotFoundException) compiling at
(libjulia_clj\impl\base.clj:1:1).
Could not locate tech/v3/jna__init.class, tech/v3/jna.clj or
tech/v3/jna.cljc on classpath.
I have used both Julia and Clojure very little.
*-john John D. Wright *
PMP, BSc
425/750-7951
***@***.***
…On Thu, Sep 16, 2021 at 11:58 AM Chris Nuernberger ***@***.***> wrote:
So, the issue is that the libjulia project is a mixed java/clj project. Be
removing the java-source-paths from the project file you are no longer
compiling the java classes - one of which is JLOptions.java
<https://github.com/cnuernber/libjulia-clj/blob/master/java/julia_clj/JLOptions.java>
.
What happens when you try the clojars release
<https://clojars.org/cnuernber/libjulia-clj> of libjulia-clj?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#2 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AHCWPSNO5G4CPWGG7MZAQQ3UCI44TANCNFSM5EC2A4EA>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
|
I think what we should do is try out the test application and see what happens. There is a test app that uses julia to efficiently compute a fractal. Once you have JULIA_HOME exported and the clojure command line system installed, go into the examples/fractal directory. (base) chrisn@chrisn-lt3:~/dev/cnuernber/libjulia-clj/examples/fractal$ clj
Clojure 1.10.3
(require '[julia-fractals :as jf])
nil
(require '[tech.v3.libs.buffered-image :as bufimg])
nil
(def img (jf/fractal))
#'user/img
img
#object[java.awt.image.BufferedImage 0x4f74edbf "BufferedImage@4f74edbf: type = 10 ColorModel: #pixelBits = 8 numComponents = 1 color space = java.awt.color.ICC_ColorSpace@3c1f2651 transparency = 1 has alpha = false isAlphaPre = false ByteInterleavedRaster: width = 1920 height = 1080 #numDataElements 1 dataOff[0] = 0"]
(bufimg/save! img "test.png")
true
user=>
(base) chrisn@chrisn-lt3:~/dev/cnuernber/libjulia-clj/examples/fractal$ This is a very simple example that should work as is mainly because we don't allocate memory in julia threads. When you want to do something more involved we have to preload the jsig library which unfortunately I do not know how to do on windows but we can figure that out once we get this far. What happens if you try this pathway? |
That all being said, I do not see the jl_options member exported from the shared library any more. @mkitti - Should I be using a different function? One thought I had was to use the normal command line pathway to do this - JL_DLLEXPORT void jl_parse_opts(int *argcp, char ***argvp); I basically enable/disable signals, set num threads and set the optimization level. |
|
OK, so then @jdwright007 was partially correct, this version of libjulia won't work with latest julia. I tested all this with 1.5.4. |
It looks like it was backported to Julia 1.7-rc2 which is available for binary download, so that might work? |
Perhaps, thanks for the pointer I will check it out. |
Chris,
I was not able to get started with this. Here is my problem:
PS
C:\Users\jdwri\Documents\workspace\libjulia-clj-master\libjulia-clj\examples\fractal>
clj
Clojure 1.10.3
user=> (require '[julia-fractals :as jf])
Execution error (FileNotFoundException) at user/eval1 (REPL:1).
Could not locate julia_fractals__init.class, julia_fractals.clj or
julia_fractals.cljc on classpath. Please check that namespaces with dashes
use underscores in the Clojure file name.
I'm running Clojure 1.10.3 from Windows per Clojure Windows instructions.
I'm running Julia-1.6.1.
*-john John D. Wright *
PMP, BSc
425/750-7951
***@***.***
…On Sat, Oct 23, 2021 at 3:01 PM Chris Nuernberger ***@***.***> wrote:
I think what we should do is try out the test application and see what
happens.
There is a test app that uses julia to efficiently compute a fractal
<https://github.com/cnuernber/libjulia-clj/blob/master/examples/fractal/julia_fractals.clj>
.
Once you have JULIA_HOME exported and the clojure command line system
installed, go into the examples/fractal directory.
(base) ***@***.***:~/dev/cnuernber/libjulia-clj/examples/fractal$ cljClojure 1.10.3(require '[julia-fractals :as jf])nil(require '[tech.v3.libs.buffered-image :as bufimg])nil(def img (jf/fractal))#'user/imgimg#object[java.awt.image.BufferedImage 0x4f74edbf ***@***.***: type = 10 ColorModel: #pixelBits = 8 numComponents = 1 color space = ***@***.*** transparency = 1 has alpha = false isAlphaPre = false ByteInterleavedRaster: width = 1920 height = 1080 #numDataElements 1 dataOff[0] = 0"](bufimg/save! img "test.png")trueuser=>(base) ***@***.***:~/dev/cnuernber/libjulia-clj/examples/fractal$
This is a very simple example that should work as is mainly because we
don't allocate memory in julia threads.
When you want to do something more involved we have to preload the jsig
library which unfortunately I do not know how to do on windows but we can
figure that out once we get this far.
What happens if you try this pathway?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#2 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AHCWPSMNQBGN6SRSOTDBMF3UIMWCVANCNFSM5EC2A4EA>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
|
I just checked in a change while I was writing those instructions. If you get latest that should allow the above section to work as it is pure clojure. |
Chris,
I ran the fractal example and it generated the fractal image.
*-john John D. Wright *
PMP, BSc
425/750-7951
***@***.***
…On Sat, Oct 23, 2021 at 3:56 PM Chris Nuernberger ***@***.***> wrote:
I *just* checked in a change while I was writing those instructions. If
you get latest that should allow the above section to work as it is pure
clojure.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#2 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AHCWPSNTOYMRYWUFAEJ6SVTUIM4RBANCNFSM5EC2A4EA>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
|
Chris,
I installed Julia 1.7-rc2 and tried to run your main libjulia but it does
not
work. Looks like the problem is still there. See below:
PS C:\Users\jdwri\Documents\workspace\libjulia-clj-master\libjulia-clj> clj
Clojure 1.10.3
user=> (require '[libjulia-clj.julia :as julia])
Syntax error (FileNotFoundException) compiling at
(libjulia_clj\impl\base.clj:1:1).
Could not locate tech/v3/jna__init.class, tech/v3/jna.clj or
tech/v3/jna.cljc on classpath.
user=>
*-john John D. Wright *
PMP, BSc
425/750-7951
***@***.***
…On Sat, Oct 23, 2021 at 3:56 PM Chris Nuernberger ***@***.***> wrote:
I *just* checked in a change while I was writing those instructions. If
you get latest that should allow the above section to work as it is pure
clojure.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#2 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AHCWPSNTOYMRYWUFAEJ6SVTUIM4RBANCNFSM5EC2A4EA>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
|
The command line pathway like I showed you from the example directory won't work for the main project. That is a leiningen based project so the equivalent command for leiningen based projects is Leiningen based projects have The example is how I recommend new projects being setup. Or, if you are using a primarily java project, just including the jar from the deps.edn dependencies in the example deps.edn. I need to spend some time with this project - I have a new FFI layer that is much cleaner and supports multiple FFI backends including jdk-17 and java's native executable pathway, graal native. Upgrading to that backend will allow me to get rid of the java in the project completely and move this project to be a deps.edn-based project similar to the example fractal. |
I just tested with 17-rc2 and that failed also. I made a branch and will attempt to upgrade libjulia-clj to latest of all the toys - will be in touch. |
Chris,
Thanks. I look forward to hearing about your upgrade.
*-john John D. Wright *
PMP, BSc
425/750-7951
***@***.***
…On Sun, Oct 24, 2021 at 5:29 AM Chris Nuernberger ***@***.***> wrote:
I just tested with 17-rc2 and that failed also. I made a branch and will
attempt to upgrade libjulia-clj to latest of all the toys - will be in
touch.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#2 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AHCWPSNF4R5C5GQWBFHUPXDUIP325ANCNFSM5EC2A4EA>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
|
Chris,
I am watching your videos and I'm learning quite a lot. Like I said,
Clojure is new,
Julia is new for me too. I look forward to hearing from you when you
resolve the
problem(s) with your clojure-julia interface library. One probabilistic
programming
system that I use, that I spent a lot of time to learn, is Figaro, which is
a Scala
library. The developers from Charles River Analytics chose not to upgrade
the Scala
version (at least for now, now at version 5x) but to focus on a rewrite to
Julia and
library enhancements in the language. Thus, my interest in your
clojure-julia
interface library that might bridge to their near-to-release Julia-based
library. They
probably made a good decision to move it from Scala to Julia. Julia, it
seems, is
very performant and feature rich. Clojure is too, especially with add-on
libraries
like yours. But the developers did not go in that direction. There is a lot
to learn in these areas for me.
I look forward to hearing from you regarding your library updates. I have
also been
looking at some of your other libraries and I have enjoyed your
talks/interviews.
*-john John D. Wright *
PMP, BSc
425/750-7951
***@***.***
…On Sun, Oct 24, 2021 at 5:29 AM Chris Nuernberger ***@***.***> wrote:
I just tested with 17-rc2 and that failed also. I made a branch and will
attempt to upgrade libjulia-clj to latest of all the toys - will be in
touch.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#2 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AHCWPSNF4R5C5GQWBFHUPXDUIP325ANCNFSM5EC2A4EA>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
|
Thanks for your kind words!! I feel a bit like a prophet in the wilderness a lot of times with this stuff. I would also use Julia to do strict numerical computation such as probabilistic programming. It is hard to explain but Julia code is more composable in a lot of ways and nothing on the JVM seriously competes with Julia in terms of raw performance of straight line numeric code. Julia's linear algebra library and GPU bindings along with it's sophisticated runtime type-based dispatch and compilation system are really unique and I think complement any JVM language. The fractal example, for instance, is much faster done in Julia out of the box and serious algorithms like umap are faster than their carefully written numba versions. There is a new version of the library and examples/fractal is updated and has a more thorough readme. For some resources in learning Clojure specifically another project I am involved with and that is based on the same ffi system is libpython-clj. That project has a new to clojure section. There are some gotchas and this all is pretty untested. Here are some things.
When you have time could you try out the fractals demo again and see what happens? Specifically instead of calling |
By the way, I'm anticipating some regression on macOS between Julia 1.7 and the JVM: There are some changes in Julia 1.6.3 and later that changes how Julia deals with signals: |
Interesting! If anything julia-1.7.0-rc2 is more stable: (base) chrisn@chrisn-lt3:~/dev/cnuernber/libjulia-clj$ clj
Clojure 1.10.2
(require '[libjulia-clj.julia :as jl])
nil
(jl/initialize! {:enable-signals? false :n-threads -1})
Oct 25, 2021 2:58:44 PM clojure.tools.logging$eval3223$fn__3226 invoke
INFO: Reference thread starting
Oct 25, 2021 2:58:44 PM clojure.tools.logging$eval3223$fn__3226 invoke
INFO: julia library arguments: ["--handle-signals=no" "--threads" "12"]
:ok
(jl/jl "Threads.@threads for i in 1:1000; zeros(1024, 1024) .+ zeros(1024, 1024); end")
nothing
user=>
(System/gc)
nil
user=> That same multithreaded code used to crash the system either during running the threaded code or when System/gc was called. |
You still need jsig, however. Even with --handle-signals=no the java GC can cause a sigsegv and Julia will bail with message: (base) chrisn@chrisn-lt3:~/dev/cnuernber/libjulia-clj$ clj
Clojure 1.10.2
(require '[libjulia-clj.julia :as jl])
nil
(jl/initialize! {:enable-signals? false :n-threads -1})
Oct 25, 2021 3:13:56 PM clojure.tools.logging$eval3223$fn__3226 invoke
INFO: Reference thread starting
Oct 25, 2021 3:13:56 PM clojure.tools.logging$eval3223$fn__3226 invoke
INFO: julia library arguments: ["--handle-signals=no" "--threads" "12"]
:ok
(jl/cycle-gc!)
nil
(jl/jl "Threads.@threads for i in 1:1000; zeros(1024, 1024) .+ zeros(1024, 1024); end")
nothing
(jl/cycle-gc!)
nil
(System/gc)
nil
user=>
rlwrap: warning: clojure crashed, killed by SIGSEGV (core dumped).
rlwrap itself has not crashed, but for transparency,
it will now kill itself with the same signal
warnings can be silenced by the --no-warnings (-n) option
Segmentation fault (core dumped) |
@jdwright007 - Another option, since you are bridging languages anyway, is tensorflow probability. |
Chris,
I tried your new clojure-julia interface library example. The example
worked using
your previous instructions but not with the new instructions. It failed on
the line:
(jf/jl-fractal):
\libjulia-clj\examples\fractal> clj
Clojure 1.10.3
user=> (require '[julia-fractals :as jf])
nil
user=> (jf/jl-fractal)
Execution error at libjulia-clj.impl.ffi/initialize! (ffi.clj:305).
Julia shared library not found at path
C:\java_tools\julia\Julia-1.7.0-rc2\lib\julia.dll
- is JULIA_HOME set incorrectly?
user=>
The file libjulia.dll is not in any of my versions of Julia that were
installed, in the
lib folder or elsewhere.
*-john John D. Wright *
PMP, BSc
425/750-7951
***@***.***
…On Mon, Oct 25, 2021 at 11:33 AM Chris Nuernberger ***@***.***> wrote:
Thanks for your kind words!! I feel a bit like a prophet in the wilderness
a lot of times with this stuff. I would also use Julia to do strict
numerical computation such as probabilistic programming. It is hard to
explain but Julia code is more composable in a lot of ways and nothing on
the JVM seriously competes with Julia in terms of raw performance of
straight line numeric code. Julia's linear algebra library and GPU bindings
along with it's sophisticated runtime type-based dispatch and compilation
system are really unique and I think complement any JVM language. The
fractal example, for instance, is much faster done in Julia out of the box
and serious algorithms like umap are faster than their carefully written
numba versions.
There is a new version of the library and examples/fractal
<https://github.com/cnuernber/libjulia-clj/tree/master/examples/fractal>
is updated and has a more thorough readme.
For some resources in learning Clojure specifically another project I am
involved with and that is based on the same ffi system is libpython-clj
<https://github.com/clj-python/libpython-clj>. That project has a new to
clojure section
<https://clj-python.github.io/libpython-clj/new-to-clojure.html>.
There are some gotchas and this all is pretty untested. Here are some
things.
- Julia is column major while tech.v3.tensor is row-major. So a jvm
tensor will be transposed in Julia, something I take advantage of in my kmeans-based
mnist demo <https://github.com/cnuernber/kmeans-mnist>.
- You cannot call Clojure from a Julia task. This is because in order
to implement green threads the Julia they do stack manipulations and the
java JNI pathway expects the stack to look a certain way thus calling Java
from Julia task usually hangs.
- For some platforms you have to enable libjsig. This is documented in
the signals topic
<https://github.com/cnuernber/libjulia-clj/blob/master/topics/signals.md>
.
When you have time could you try out the fractals demo again and see what
happens? Specifically instead of calling jf/fractal which is pure JVM
stuff call jf/jl-fractal and you should see the julia system initialize
and generate the image.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#2 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AHCWPSLOZ4YNO6WLEUSPGADUIWPI5ANCNFSM5EC2A4EA>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
|
hmm - on windows it will be just julia.dll, not libjulia.dll. That I think is a bug in my code. What files ending in .dll are installed under julia? |
Very interesting -- A public API published for each of them would be great :-). |
@jdwright007 - In latest I updated the system to search both lib and bin dirs for the julia shared library. When you get a chance could you give it another try? |
Chris,
Your latest codebase seems to work now, both the examples\fractal example
and the main folder readme (I did not go through all of it so far). See
traces below.
Thanks for working these things out. Now I have a bridge to Julia via your
interface.
As to the other probabilistic systems, I knew about Anglican, but not
Daphne. I'll
check them out. I am in communication with the Figaro project lead over at
Charles
River Analytics and I'm looking forward to their new release (a.k.a.
Scruff, no longer
will it be called Figaro???). I have quite a bit of time invested in their
Figaro system
and some project work too. Their Scala version of Figaro works well but
they froze
the version at 5.x, with no updates for sometime.
I'll finish up with your example and learn about your interface. And, I'll
continue with
looking at your other projects. Thanks for keeping me in the loop and your
project
updates. Thanks also for your Clojure references, they should help me out
with
learning Clojure. I'm going through "Clojure in Action", a Manning book,
at present
(along with other stuff).
…----------------------------------------------------
Examples/fractal directory example -- works okay now:
----------------------------------------------------
PS
C:\Users\jdwri\Documents\workspace\libjulia-clj-master\libjulia-clj\examples\fractal>
clj
Downloading:
com/cnuernber/libjulia-clj/1.000-beta-3/libjulia-clj-1.000-beta-3.pom from
clojars
Downloading:
com/cnuernber/libjulia-clj/1.000-beta-3/libjulia-clj-1.000-beta-3.jar from
clojars
Clojure 1.10.3
user=> (require '[julia-fractals :as jf])
nil
user=> (jf/jl-fractal)
Oct 27, 2021 1:03:34 PM clojure.tools.logging$eval3221$fn__3224 invoke
INFO: Reference thread starting
Oct 27, 2021 1:03:34 PM clojure.tools.logging$eval3221$fn__3224 invoke
INFO: julia library arguments: ["--handle-signals=no" "--threads" "1"]
WARNING: failed to initialize stack walk info
#object[java.awt.image.BufferedImage 0x3683c47f ***@***.***:
type = 10 ColorModel: #pixelBits = 8 numComponents = 1 color space =
***@***.*** transparency = 1 has alpha = false
isAlphaPre = false ByteInterleavedRaster: width = 1920 height = 1080
#numDataElements 1 dataOff[0] = 0"]
user=> (def img *1)
#'user/img
user=> (require '[tech.v3.libs.buffered-image :as bufimg])
nil
user=> (bufimg/save! img "test.png")
true
----------------------------------------------------
Main folder readme code -- works okay now:
----------------------------------------------------
PS C:\Users\jdwri\Documents\workspace\libjulia-clj-master\libjulia-clj> clj
Downloading: org/clojure/clojure/1.10.2/clojure-1.10.2.pom from central
Downloading: org/clojure/clojure/1.10.2/clojure-1.10.2.jar from central
Clojure 1.10.2
user=> (require '[libjulia-clj.julia :as julia])
nil
user=> (julia/initialize!)
Oct 27, 2021 1:07:38 PM clojure.tools.logging$eval3223$fn__3226 invoke
INFO: Reference thread starting
Oct 27, 2021 1:07:38 PM clojure.tools.logging$eval3223$fn__3226 invoke
INFO: julia library arguments: ["--handle-signals=no" "--threads" "1"]
WARNING: failed to initialize stack walk info
:ok
user=> (def ones-fn (julia/jl "Base.ones"))
#'user/ones-fn
user=> (ones-fn 3 4)
[1.0 1.0 1.0 1.0; 1.0 1.0 1.0 1.0; 1.0 1.0 1.0 1.0]
user=> (def julia-ary *1)
#'user/julia-ary
user=> (require '[tech.v3.tensor :as dtt])
nil
user=> (dtt/ensure-tensor julia-ary)
#tech.v3.tensor<float64>[4 3]
[[1.000 1.000 1.000]
[1.000 1.000 1.000]
[1.000 1.000 1.000]
[1.000 1.000 1.000]]
user=> (def clj-tens *1)
#'user/clj-tens
user=> (dtt/mset! clj-tens 0 25)
#tech.v3.tensor<float64>[4 3]
[[25.00 25.00 25.00]
[1.000 1.000 1.000]
[1.000 1.000 1.000]
[1.000 1.000 1.000]]
user=> julia-ary
[25.0 1.0 1.0 1.0; 25.0 1.0 1.0 1.0; 25.0 1.0 1.0 1.0]
user=>
----------------------------------------------------
*-john John D. Wright *
PMP, BSc
425/750-7951
***@***.***
On Wed, Oct 27, 2021 at 8:12 AM Chris Nuernberger ***@***.***> wrote:
I should also note that for probabilistic programming in Clojure you have:
- Anglican <https://probprog.github.io/anglican/> - grandaddy of lots
of probprog systems.
- Daphne <https://github.com/plai-group/daphne> - new hotness.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#2 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AHCWPSMK3VUJAG4E3XRTUBTUJAJF7ANCNFSM5EC2A4EA>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
|
OK, wow, that is great! Thanks for sticking with it these last few days and for the motivation to bring this project forward. |
From the Julia discourse:
From leinegen repl I’m using -
(require '[libjulia-clj.julia :as julia])
What I’ve done -
Installed Julia 1.5.4, julia_home is set to point to the install directory
Used git to download LibJulia project
Used from LibJulia directory
lein repl
At user prompt used:
user> (require '[libjulia-clj.julia :as julia])
I’m getting:
Syntax error (ClassNotFoundException) compiling at (libjulia_clj\impl\jna.clj:1:1).
julia_clj.JLOptions
Note - I found that Julia 1.5.4 does have the Options.jl library. My path for
julia_home is pointing to Julia 1.5.4 install directory. I have not checked for
later Julia install on my system. My julia_home is set to point to Julia 1.5.4
install directory.
The text was updated successfully, but these errors were encountered: