Vocabulary/Libraries
Keywords used in describing these programs:
audio calculus conversions database debug files formatting graphics interface key-value-pairs linear-algebra matrix miscverbs numerics sampleapp scientific sysadmin
Installing addons
Pacman installs and upgrades addons--as well as the J Engine, GUIs, and other aspects of an installation.
Jqt (Tools|Package Manager) and JHS (ide|pacman) provide graphics interfaces to most of the pacman functionality. The Pacman package, normally installed with the J system, provides the same functionality without a GUI:
install 'math/calculus' will install the calculus addon (again, if it's already there).
Addon program descriptions
Listed links are to their original locations. All are now also linked from Git_Repositories, some solely, via the src button.
Package Description Keywords api/expat (src) Interface to libexpat, a fast-streaming XML parser. Only on github. See readme.txt there.
interface api/gles (src) OpenGL 4.2 and OpenGL ES 3.1 API definitions. graphics
interfaceapi/jc (src) C-library interface (streams/fds/system). Only on github.
interface api/jni (src) Java Native Interface. Contributed by Bill Lam
conversions api/lapacke (src) The LAPACKE C-Interface to [www.netlib.org/lapack/lapacke.html LAPACK]. LAPACK version 3.X is a comprehensive Fortran library. Does linear-lgebra operations, including matrix inversions, least-squares solutions to sets of linear equations, eigenvector analysis, singular-value decomposition, etc. A comprehensive and reputable package that has found extensive use in the scientific community.
Binary for Linux: install liblapacke (or similar) from your distribution repository.
For 64-bit Windows, it needs 6 run-time dll files--
From libraries: libblas.dll, liblapack.dll, liblapacke.dll.
From mingw: libgcc_s_sjlj-1.dll, libgfortran-3.dll, libquadmath-0.dll.See also math/lapack (src).
numerics
scientific
interfaceapi/ncurses (src) Enables writing text-based user interfaces (TUI) in a terminal-independent manner. See ncurses. Also works with public-domain version PDCURSES.
interface api/ncurses5 (src) CRT screen-handling and optimization package. See ncurses5. To install shared library or dll--
linux: (debian) sudo aptitude install libncurses5, or libncursesw5 for unicode.
win32: download pre-compiled binary from ncurses.interface api/python3 (src) Interface for python3 use of J shared library. interface api/sl4a (src) Interface to a scripting environment for Android. Enables use of scripts written in Python, Perl, Ruby, Lua, Java (BeanShell), JavaScript (Rhino), and other languages.
- Not found!
interface arc/zip (src) Zip-file utilities based on zlib 1.2.3 and minizip libraries. Interface is similar to the files package. Includes Win32, Linux, and Mac OS X universal binaries. See Help/Primer/Files.
Copyright 2006-2007 (C) Oleg Kobchenko
interface
filesarc/ziptrees (src) Zips and unzips directory trees to and from zip files. Uses the the arc/zip addon.
Contributed by Ric Sherlock
conversions
filesarc/zlib (src) Utilities for zlib de-/compression routines.
conversions
filesconvert/jiconv (src) Auto-detection and conversion between many character encodings. See Iconv. conversions convert/json (src) Encoder/decoder for JavaScript Object Notation. conversions convert/misc (src) Character conversions-- ascii85.ijs: to/from ascii85 representations
base64.ijs: to/from base64 representations
md5.ijs: uses MD5 Message-Digest Algorithm of RSA Data Security, Inc.
unicode.ijs: Unicode utilities
vig.ijs: Vigenère cipher with optional encoding
conversions convert/pjson (src) Another encoder/decoder for JavaScript Object Notation. See JSON.
conversions data/ddmysql (src) Accesses a MySQL server. Uses native C API and the JDD data-driver interfaces, such as ddcon and ddfet. Requires MySQL client library or Connector/C.
For Linux, install libmysqlclient (or similar) from your distribution repository, or download from MySQL.
See JDD for help.
database data/ddsqlite (src) Accesses a SQLite database. Uses C API and the data-driver (JDD) interfaces, such as ddcon and ddfet. Requires SQLite 3.6.0 or newer.
See JDD for help. See readme.txt on github for shared-library installation.
database
interfacedata/jd (src) A commercial database product from Jsoftware. Although similar in terminology and features to MySQL, Oracle, DB2, SQL Server, and others, it is closer in spirit and design to Kx's kdb, Jsoftware's free JDB, and old APL financial systems on mainframes in the 70s and 80s.
The key difference between Jd and most other systems is that Jd comes with a fully integrated and mature programming language. Jd is implemented in J and lives openly and dynamically in the J execution and development environment. Jd is a natural extension of J and the full power of J is available to the Jd database application developer. The integration is not just available to you, it is unabashedly pushed to you for exploitation.
Jd is a columnar (column-oriented) RDBMS.
Jd is particularly suited to analytics. It works well with large tables (100s of millions of rows), multiple tables connected by complex joins, structured data, numerical data, and complex queries and aggregations.
database data/jfiles (src) Definitions for the J component-file and keyed-file systems. A keyed file is a J component-file in which data are accessed using keywords.
data/jmf (src) J Memory Mapped File operations. files data/odbc (src) Accesses database using ODBC interface. database data/sqlite (src) Enables direct access to SQLite databases. See Overview.
database data/sqltable (src) High-level interface for accessing SQL database tables. Accesses a database without low-level knowledge of the odbc interface.
This package is the result of consultation work done for Anssi Seppälä. Significant changes were made in data/odbc addon to support this package. This work is released to the public by the request and permission of Anssi Seppälä. Thank you, Anssi.
database debug/dissect (src) A visual debugger for individual J sentences. Described at [[Vocabulary/Dissect|Dissect}}.
debug debug/jig (src) Detailed data display. Jig displays an interactive-graphics window that shows the shape, type, and other properties of nouns. Jig runs in the jqt environment and requires the full version of the QT environment.
debug debug/lint (src) Static program analyzer to find errors before execution. Described at lint.
debug debug/tte (src) An adverb to "explicate" tacit verbs by generating readable explicit definitions. debug demos/coins (src) This is a sample J project based on the coins demo. Only at github.
sampapp demos/isigraph (src) Isigraph example scripts. Each script can be run by itself. First enter:
- [missing command!]
Many of these examples (in particular, the ifs examples) are based on work by Clifford Reiter.
graphics demos/publish (src) This is a sample J project using Publish to format text. formatting sampapp demos/qtdemo (src) Simple demos for qt interface. graphics
interfacedemos/wd (src) wd demos using qt interface and jandroid. graphics
interfacedemos/wdplot (src) Plot demos using wd emulation. graphics docs/docs (src) J Help Files. docs/joxygen (src) Generates html documentation from in-script comments. Inspired by Doxygen and Roxygen.
Contributed by Ric Sherlock & Chris Burke
conversions finance/actuarial (src) Various actuarial functions. finance/interest (src) Various compound-interest functions. format/datefmt (src) Various date-formatting functions. formatting format/printf (src) Verbs and adverbs for formatted printing in the manner of C's printf and sprintf. formatting format/publish (src) Generates a PDF report from source in plain text files. Uses an html-like markup language which supports calling J expressions. For example, it can read in data from various sources. Apart from this, reports can be customized without knowledge of J.
formatting format/sbox (src) Correct display of boxed nouns containing Unicode glyphs. Verb sbox loads in locale 'z'.
formatting format/zulu (src) String-conversion verbs loading in locale 'z'. An addon plus a sandbox of sample data in locale 'zulu'. Converts consistently between 4 supported forms of stringlist: boxed; LF-separated; open; matrix.
conversions
formattingformat/zulu/zulu-bare (src) String-conversion verbs loading in locale 'z'. Addon zulu-bare is a cutdown version of addon zulu.
formatting format/zulu/zulu-lite (src) String-conversion verbs loading in locale 'z'. Addon zulu-lite is a cut-down version of the addon zulu.
formatting games/2048 (src) Implementation of the 2048 game. An example of how to implement equivalent user interfaces for different environments. User interfaces available for various J environments currently include:
- jconsole, jQt
Author: Ric Sherlock
games
sampappgames/minesweeper (src) An example of how to implement equivalent user interfaces for different environments. User interfaces available for various J environments currently include:
- jconsole, jQt
Authors: Ric Sherlock, Bill Lam, and Raul Miller.
games
sampappgames/nurikabe (src) Nurikabe puzzle. See Essays/Nurikabe. games games/pousse (src) A 2-person game, played with markers on an N-by-N board. See doc.ijs at github.
Submitted by Iverson Software.
games games/solitaire (src) Standard Solitaire one-player card game. Only at github.
Created by: Ken Cramer
games general/gdirtrees (src) Copies and deletes directory trees. Copyright 2008 (C) Ric Sherlock
general/dirutils/general/dirutils (src) Directory utilities in addition to those in dir.ijs. Includes test for existence of directory, creation of all non-existing directories in a path.
Contributed by Ric Sherlock
general/inifiles (src) Reads/writes one (or more) setup keys from/to files in INI format. The INI file sources can be files stored on disk, or a string read from a database or zip file. Uses regex functionality built into J to parse INI formats, so is not dependent on Windows API.
Copyright 2008 (C) Ric Sherlock
general/jod (src) JOD (J Object Dictionary) is a J programming tool. A word-oriented database for all types of J objects. JOD supports linked-dictionary databases and provides tools for documenting and testing J code.
J 7.0x/8.0x JOD requires the (data/jfiles) addon. Prior versions of J make (jfiles) available from system scripts.
If you install JOD, it is highly recommended that you install the related addon JODDOCUMENT. JODDOCUMENT installs detailed PDF documentation for JOD.
For more information, see the JOD wiki pages (Info Button), and run the lab "JOD lab JOD Introduction"; JOD labs are under the General lab category. If you do not see JOD labs listed on the Lab menus, use the Lab browse button to access: [addons/general/jod/jodlabs|jodlabs].
More information is available at: The-jod-page.
database general/joddocument (src) Documents the JOD system as jod.pdf. Also see the JOD wiki pages (Info Button) or visit The JOD Page at: The-jod-page.
LaTeX document source is available on GitHub at: joddoc.
--John Baker bakerjd99@gmail.com
database general/jodsource (src) Serialized dictionary dump scripts: joddev, jod, utils. These dump scripts contain all the code, test cases, build scripts, and documentation used to develop and maintain JOD and related systems.
Dump scripts are large J scripts that load dictionary objects into JOD dictionaries when run. JOD system dictionaries are good examples of how JOD can be used to build complex J systems.
J 7.0x/8.0x JOD requires the (data/jfiles) addon. Prior versions of J make (jfiles) available from system scripts.
JOD source dictionaries can be set up in two ways:
1) Run the J script: jodsourcesetup. This is the recommended method, and can take a minute or so to run.
2) Run the JOD lab "JOD Source Code Dump Scripts." JOD labs are in the (General) lab category. If you do not see JOD labs listed on the Lab menus, use the Lab browse button to access: jodlabs.
More information is available at: The-jod-page.
database general/misc (src) A grab-bag of utilities-- bigfiles.ijs, clippaste.ijs, evolute.ijs, fndef.ijs: Uses a more literate style
fndisplay.ijs: Displays hooks, forks, and other syntax elements
font.ijs, format.ijs, guid.ijs: Creates guids in various formats
ieee64.ijs
inverted.ijs: See [[Essays/Inverted_Table}}
jdll.ijs: ??
numeric.ijs: Various numeric utilities
pack.ijs: Package utilities
parts.ijs: Partition functions
prompt.ijs, test_bigfiles.ijs: data=.bixread f;start0,start1[,len[,dirflag}}: Indexed read
test_clippaste.ijs: Test script for clippaste.ijs
trace.ijs: Execution trace utilities
validate.ijs: Data-validation functions
miscverbs general/primitives/general/primitives (src) Offers a more literate form of J, using words for the J primitives. We call these words "alpha primitives" since they use an alphabetic form, rather than a graphic or inflected graphic, to represent them. Offers options for the form of the words used, and verbs to convert a script in alpha form to a script in J primitives, so there will be no execution-time penalty.
conversions general/unittest (src) Implements a unit-test framework. Copyright 2008-2009 (C) Oleg Kobchenko
graphics/afm (src) Adobe Font Metrics. graphics graphics/bmp (src) Utilities for *.bmp bitmap files. graphics graphics/cairo (src) Vector-based Cairographics interface and gl2 emulation. graphics
interfacegraphics/color (src) Color tables and related scripts. graphics graphics/d3 (src) D3 interface verbs written for JHS. D3.js ("Data-Driven Documents") is a free JavaScript library to display digital data in graphic, dynamic forms. Described at D3.
conversions graphics/fvj4 (src) Exercises in producing visual effects. Scripts for use with Cliff Reiter's book, Fractals, Visualization and J, 4th edition, to--
plot simple polygons; work with raster arrays; create POV-Ray scenes; view automata; and execute the Game of Life in color.graphics graphics/gl2 (src) Base class for OpenGL 2 commands. graphics graphics/gnuplot (src) Creates Gnuplot graphics from data in J. This works with Gnuplot V4.0 or later, and may work with earlier versions.
Original script contributed by L. Fraser Jackson.
graphics graphics/graph (src) 2D graphing. graphics graphics/graphviz (src) Graphical Visualization. Based on Graphviz from graphviz.org.
Copyright 2006 (C) Oleg Kobchenko
graphics graphics/jpeg (src) Utilities for processing *.jpg files. graphics graphics/pdfdraw (src) Drawing to a PDF file or a Publish JPF file. Demos included.
graphics
sampappgraphics/plot (src) 2D plotting. graphics graphics/png (src) Utilities for processing *.png files. graphics graphics/pplatimg (src) Implementations for Windows, Linux, and Mac OS X. Supports BMP, GIF, JPEG, PNG, TIFF, Exif, ICO, WMF, and EMF formats where available.
Returns pixel matrix in ARGB (Alpha most significant) integer format. Expects ARGB, or triples of RGB in any axis of rank-3 array.
Good for glpixels. Uses GDI+, Core Graphics (Quartz), and the gdk-pixbuf Library from GTK+.
Based on Oleg Kobchenko's [[Addons/media/platimg|media/platimg}}; read description there.
Ported to 64-bit platforms by Bill Lam.
graphics graphics/print (src) Prints text files. graphics graphics/treemap/graphics/treemap (src) Displays a treemap in an isigraph control. graphics graphics/viewmat (src) Displays tables of data graphically. matrix
graphicsgui/cobrowser (src) Cobrowse, a famous SmallTalk tool for J. conversions ide/ja (src) Android Integrated Development Environment. ide/jhs (src) JHS Integrated Development Environment. ide/jnet (src) Networking Integrated Development Environment. Only at github.
ide/qt (src) Qt Development Environment Manages screen windows. Also makes snapshots to track recent changes in scripts, and optionally in projects, to enable comparisons.
Only at github.
labs/labs (src) Introductory laboratory exercises. main/regex (src) *[Where is it?] main/socket (src) *[Where is it?] main/stdlib (src) *[Where is it?] main/task (src) *[Where is it?] math/cal (src) Interface to TABULA, a backfitting scientific calculator. Critically dependent on math/uu. See math/tabula.
scientific
interfacemath/calculus (src) Symbolic and numeric differentiation and integration-- derivative, partial derivative, and secant slope. Done by analysis of the verb argument if possible, otherwise by approximation.
calculus math/deoptim (src) Differential Evolution, a form of evolutionary algorithm. DE finds the global minimum of a multidimensional, multimodal function (i.e. exhibiting more than one minimum) with good probability. It is relatively robust, simple, and fast.
See theory at Differential Evolution.
- Dead source link: code.
Program by Prof. Rainer M. Storn; contributed by Ric Sherlock.
scientific math/eigenpic (src) Eigenpicture, a diagrammatic representation of a matrix of eigenvectors. Was at Studio|Demos|eigenpictures, system/examples/graphics/isigraph/eigenpic.ijs
Only at github.
scientific math/fftw (src) FFTW, Fastest Fourier Transform in the West. Fast C routines for the Discrete Fourier Transform in one or more dimensions. It includes complex, real, and parallel transforms, and can handle arbitrary array sizes efficiently. It consists of a DLL incorporating the FFTW routines, plus supporting J scripts and labs.
FFTW is available under Windows, Mac, and Linux. It and the package are distributed under the terms of the The GNU General Public License.
scientific math/flann (src) Nearest-neighbor-search calculations on arrays. Includes a default "spatial-tree" method, using an efficient search via a hybrid kd-tree. Also supports Locality Hashing (yet untested).
Only at github.
scientific math/lapack (src) LAPACK Linear-Algebra Package. Solves systems of simultaneous linear equations, least-squares solutions of linear systems of equations, eigenvalue problems, and singular-value problems. The associated matrix factorizations (LU, Cholesky, QR, SVD, Schur, generalized Schur) are also provided, as are related computations, such as reordering of the Schur factorizations and estimating condition numbers.
Binary for Mac is provided by the veclib framework.
Binary for Linux can come from liblapack3 (or similar) from your distro repository. If available, install libopenblas-base or libatlas3-base, which provides an optimized version of BLAS.
For 64-bit windows, a jlapack64.dll prebuilt by David Hotham is included in this addon. Note that this dll requires a run-time code from msvc.
For Android, run install_jlapack '' to install the shared library.
Reference BLAS implementations may be orders of magnitude slower than optimized implementations.
See also api/lapacke (src).
numerics
scientificmath/misc (src) Mathematical utilities-- amoeba.ijs: Nelder-Mead multi-dimensional minimization, a.k.a. the amoeba method
bigpi.ijs: Calculate several digits of pi
brent.ijs: Brent's method
build.ijs cheby.ijs: Chebyshev approximation
contfrac.ijs: Continued-fraction utilities
det.ijs: Definitions for determinants
fermat.ijs: Fermat factorization
gamesolver.ijs: Find optimal mixed strategies for 2-person games
gcd.ijs: Calculate Greatest Common Divisor
integer.ijs: Generate various integer sequences
integrat.ijs: Various methods for numeric integration
jacobi.ijs: Jacobi's method for eigenvalues and vectors
legendre.ijs: Legendre symbol and quadratic residues
linear.ijs: Solve linear equations
makemat.ijs: Make various standard matrices
matfacto.ijs: Matrix factorization
mathutil.ijs: Math utilities
matutil.ijs: Matrix utilities
mean.ijs: Various means
numbers.ijs: Various number definitions (Stirling, Euler ...)
odeint.ijs: Solve initial-value ordinary differential equations
pollard.ijs: Pollard factorizations
poly.ijs: Polynomial functions
primutil.ijs: Primes - prime-testing programs
quatern.ijs: Definitions for quaternions
rsa.ijs: Examples of RSA encryption
simplex.ijs: Simplex method
simplexnr.ijs: Simplex method (after Numerical Recipes in C)
spline.ijs: Spline-curve utilities
svd.ijs: Singular-value decomposition
trig.ijs: Trigonometric functions
scientific
linear-algebra
matrix
calculusmath/mt (src) Solves some problems in matrix algebra-- transforming, decomposing, reducing to condensed form, factoring, equation solving, function applying, condition-number estimating.
Based mostly on LAPACK algorithms, but doesn't require LAPACK.linear-algebra
matrixmath/tabula (src) A backfitting scientific calculator. Handles calculations with different, but compatible, units of measurement. Essentially a jqt top end to math/cal.
sampleapp
scientificmath//uu (src) A user-extendable scientific units-to-units conversion package. Based on SI units (Système Internationale), with many pre-defined scientific, technical and trade constants. Used heavily by math/cal.
scientific media/imagekit (src) Utilities for accessing 24-bit jpeg, png image files. The core functions allow reading and writing image files as 3-dimensional J arrays.
The main script provides functions for basic image reading, writing, and viewing through other addons. Another script, html_gallery.ijs, provides functions that create thumbnails and image galleries under program control. Sample scripts and a rotation form script are included.
graphics media/videolabs (src) Multimedia framework for the jqt environment. Incorporates audio and video into the traditional J labs, retaining the interactive development environment.
This viewer allows access to sections and chapters via drop-down menus, as well as providing user capabilities to make personal notes for sections.
Affordances such as pause, replay, and scan are also provided for the videos. A script file as a text version allows search via nuvoc, and google on the web.
Internet connectivity is required for the first run of the video lab, to allow for video resource downloads to the '~user/videolabs/lab_name' folder.
Personal notes are stored in the '~user/videolabs/lab_name/notes' folder.
audio
interfacemedia/wav (src) Windows WAV-file creation and play. Includes samples of creating musical notes in PCM format.
Copyright 2006 (C) Oleg Kobchenko
audio misc/classroom (src) Automates keeping multiple user profiles synched to a master profile. sysadmin misc/miscutils (src) A miscellany of functions, mostly tacit-- langexten: basic extensions to J
klutils: functions for 'keyed lists', tables where specified columns are 'key' and the rest are 'data'
utils: a grab-bag of definitions
Only at github.
key-value-pairs
miscverbsnet/clientserver (src) A simple client server. net/jcs (src) A messaging client server built on ZeroMQ. net/websocket (src) A websocket server. Enables a web browser to make calls to J.
net/zmq (src) An interface to ZeroMQ distributed messaging. Client server examples and labs are in net/jcs.
interface profiles/profiles (src) Various options to update the user's config file. Explorer.ijs prepares to update packages, then loads visualization and debug tools, and sets PF-keys for debugging.
debug sockets/socklib (src) Communication-socket management. sockmux creates a socket in its own locale and manages multiple such sockets.
sockconnxactn calls sockmux and mediates transfer of data to an application, using callbacks to tell the application when data has been received.
Suitable for things like email or HTTP transactions.There is also a file-server.
sockets/sockutils (src) Routines to process transactions using the socket system. stats/base (src) Basic statistical package. (Migrated from system/packages/stats.)
statistics statss/distribs (src) Verbs for working with statistical distributions. Currently covers normal and uniform distributions.
Compiled by Ric Sherlock & Fraser Jackson from many contributions by the J community.
stats/r/stats/r (src) Interfaces to the R statistical package. R is the most widely used program in the statistical research community and has a vast range of statistical tools. Freely available on all common platforms.
More information at [[Interfaces/R}}.
statistics stats/jserver4r (src) An interface to J from the R statistical package. See Jserver4R.
interface
statisticsstats/rlibrary (src) Support for various R libraries, using the Rserve interface. See Rserve/Library.
interface
statisticstables/csv (src) Reads/writes/appends comma-separated-value (CSV) files and strings. Generally better performance than the base library CSV script.
Note: requires loading the tables/dsv addon.
Contributed by Ric Sherlock.
conversions tables/dsv (src) Reads/writes/appends delimiter-separated-value (DSV) files and strings. Supports user-defined field and string delimiters.
Contributed by Ric Sherlock.
conversions tables/excel (src) Reads/writes/appends Excel files using OLE. Contributed by Ric Sherlock.
interface
conversionstables/tara (src) Reads and writes files in Excel format. Supports the biff8 format used in Excel 97/2000/xp/2003. Reads formats used in earlier versions of Excel. Can also work with spreadsheets that support Excel formats, like OpenOffice and Gnumeric. Runs on Windows, Linux, and Mac OS X. Neither MS Excel nor OpenOffice is required to use Tara.
After installation, run lab 'Tara and Excel' for examples of using the system.
Developed and copyrighted by Bill Lam, bbill.lam@gmail.com, but may be used freely, even for commercial purposes.
interface
conversionstables/taraxml (src) Reads files in Microsoft Excel's OpenXML format. For reading and writing older non-XML Excel formats, see the Tara addon.
Depends on a command-line transformation utility--
Linux: xsltproc should be available in various linux distributions.
Windows: msxsl.exe, which also depends on msxml4 (not msxml6!).TaraXML was developed by Ric Sherlock and Bill Lam.
conversions types/datetime (src) Converts between day number and dates, including hours. Custom date/time formatting and date/time arithmetic.
Extends the dates.ijs system script.
conversions web/gethttp (src) Interface to Wget/cURL for retrieving files. Retrieves or saves file contents via http, https, or ftp protocols.
Learn about SSL/TLS certificates before use, at sslcerts.
You could get a more recent cert file from caextract.
interface
files