37,632 research outputs found
Object orientation and visualization of physics in two dimensions
We present a generalized framework for cellular/lattice based visualizations
in two dimensions based on state of the art computing abstractions. Our
implementation takes the form of a library of reusable functions written in C++
which hides complex graphical programming issues from the user and mimics the
algebraic structure of physics at the Hamiltonian level. Our toolkit is not
just a graphics library but an object analysis of physical systems which
disentangles separate concepts in a faithful analytical way. It could be
rewritten in other languages such as Java and extended to three dimensional
systems straightforwardly. We illustrate the usefulness of our analysis with
implementations of spin-films (the two-dimensional XY model with and without an
external magnetic field) and a model for diffusion through a triangular
lattice.Comment: 12 pages, 10 figure
Recommended from our members
Software tools for stochastic programming: A Stochastic Programming Integrated Environment (SPInE)
SP models combine the paradigm of dynamic linear programming with
modelling of random parameters, providing optimal decisions which hedge
against future uncertainties. Advances in hardware as well as software
techniques and solution methods have made SP a viable optimisation tool.
We identify a growing need for modelling systems which support the creation
and investigation of SP problems. Our SPInE system integrates a number of
components which include a flexible modelling tool (based on stochastic
extensions of the algebraic modelling languages AMPL and MPL), stochastic
solvers, as well as special purpose scenario generators and database tools.
We introduce an asset/liability management model and illustrate how SPInE
can be used to create and process this model as a multistage SP application
The Generic Structure Editor
AbstractThe ASF+SDF Meta-environment is an algebraic specification environment geared to language design, and a generator for interactive programming environments for these languages. During a reengineering project of the tooling of this system problems arose: the functionality was distributed over several tools, but the system as a whole contained a deadlock. This document reports on how PSF and Synchronous Interworkings were used to model the interaction of the tools, and to clarify the communication behaviour of the tools to the ASF+SDF engineering team
Effects and Effect Handlers for Programmable Inference
Inference algorithms for probabilistic programming are complex imperative
programs with many moving parts. Efficient inference often requires customising
an algorithm to a particular probabilistic model or problem, sometimes called
inference programming. Most inference frameworks are implemented in languages
that lack a disciplined approach to side effects, which can result in
monolithic implementations where the structure of the algorithms is obscured
and inference programming is hard. Functional programming with typed effects
offers a more structured and modular foundation for programmable inference,
with monad transformers being the primary structuring mechanism explored to
date.
This paper presents an alternative approach to programmable inference, based
on algebraic effects, building on recent work that used algebraic effects to
represent probabilistic models. Using effect signatures to specify the key
operations of the algorithms, and effect handlers to modularly interpret those
operations for specific variants, we develop three abstract algorithms, or
inference patterns, representing three important classes of inference:
Metropolis-Hastings, particle filtering, and guided optimisation. We show how
our approach reveals the algorithms' high-level structure, and makes it easy to
tailor and recombine their parts into new variants. We implement the three
inference patterns as a Haskell library, and discuss the pros and cons of
algebraic effects vis-a-vis monad transformers as a structuring mechanism for
modular imperative algorithm design. It should be possible to reimplement our
library in any typed functional language able to emulate effects and effect
handlers
The C++0x "Concepts" Effort
C++0x is the working title for the revision of the ISO standard of the C++
programming language that was originally planned for release in 2009 but that
was delayed to 2011. The largest language extension in C++0x was "concepts",
that is, a collection of features for constraining template parameters. In
September of 2008, the C++ standards committee voted the concepts extension
into C++0x, but then in July of 2009, the committee voted the concepts
extension back out of C++0x.
This article is my account of the technical challenges and debates within the
"concepts" effort in the years 2003 to 2009. To provide some background, the
article also describes the design space for constrained parametric
polymorphism, or what is colloquially know as constrained generics. While this
article is meant to be generally accessible, the writing is aimed toward
readers with background in functional programming and programming language
theory. This article grew out of a lecture at the Spring School on Generic and
Indexed Programming at the University of Oxford, March 2010
An algebraic basis for specifying and enforcing access control in security systems
Security services in a multi-user environment are often based on access control mechanisms. Static aspects of an access control policy can be formalised using abstract algebraic models. We integrate these static aspects into a dynamic framework considering requesting access to resources as a process aiming at the prevention of access control violations when a program is executed. We use another algebraic technique, monads, as a meta-language to integrate access control operations into a functional
programming language. The integration of monads and concepts from a denotational model for process algebras provides a framework for programming of access control in security systems
Can Computer Algebra be Liberated from its Algebraic Yoke ?
So far, the scope of computer algebra has been needlessly restricted to exact
algebraic methods. Its possible extension to approximate analytical methods is
discussed. The entangled roles of functional analysis and symbolic programming,
especially the functional and transformational paradigms, are put forward. In
the future, algebraic algorithms could constitute the core of extended symbolic
manipulation systems including primitives for symbolic approximations.Comment: 8 pages, 2-column presentation, 2 figure
- âŠ