# Wolfram Language & System Documentation Center ## Core Language & Structure - [Language Overview](https://reference.wolfram.com/language/guide/LanguageOverview.en.md): The Wolfram Language is a highly developed knowledge-based language that unifies a broad range of programming paradigms and uses its unique concept of symbolic programming to add a new level of flexibility to the very concept of programming. - [Lists](https://reference.wolfram.com/language/guide/ListManipulation.en.md): Lists are central constructs in the Wolfram Language, used to represent collections, arrays, sets, and sequences of all kinds. Lists can have any structure and size and can routinely involve even millions of elements. Well over a thousand built-in functions throughout the Wolfram Language operate directly on lists, making lists a powerful vehicle for interoperability. - [Expressions](https://reference.wolfram.com/language/guide/Expressions.en.md): At the core of the Wolfram Language is the foundational idea that everything--data, programs, formulas, graphics, documents--can be represented as symbolic expressions. And it is this unifying concept that underlies the Wolfram Language's symbolic programming paradigm, and makes possible much of the unique power of the Wolfram Language and the Wolfram System. - [Associations](https://reference.wolfram.com/language/guide/Associations.en.md): Along with lists, associations are fundamental constructs in the Wolfram Language. They associate keys with values, allowing highly efficient lookup and updating, even with millions of elements. Associations provide generalizations of symbolically indexed lists, associative arrays, dictionaries, hashmaps, structs, and a variety of other powerful data structures. - [Variables & Functions](https://reference.wolfram.com/language/guide/VariablesAndFunctions.en.md): The symbolic language paradigm of the Wolfram Language takes the concept of variables and functions to a new level. In the Wolfram Language a variable can not only stand for a value, but can also be used purely symbolically. And building on the Wolfram Language's powerful pattern language, functions can be defined not just to take arguments, but to transform a pattern with any structure. - [Rules & Patterns](https://reference.wolfram.com/language/guide/RulesAndPatterns.en.md): At the core of the Wolfram Language's symbolic programming paradigm is the concept of transformation rules for arbitrary symbolic patterns. The Wolfram Language's pattern language conveniently describes a very general set of classes of expressions, making possible uniquely readable, elegant and efficient programs. - [Functional Programming](https://reference.wolfram.com/language/guide/FunctionalProgramming.en.md): Functional programming is a highly developed and deeply integrated core feature of the Wolfram Language, made dramatically richer and more convenient through the symbolic nature of the language. Treating expressions like f[x] as both symbolic data and the application of a function f provides a uniquely powerful way to integrate structure and function--and an efficient, elegant representation of many common computations. - [Procedural Programming](https://reference.wolfram.com/language/guide/ProceduralProgramming.en.md): The Wolfram Language stands out from traditional computer languages in supporting many programming paradigms. Procedural programming is the only paradigm available in languages like C and Java, as well as most scripting languages. The Wolfram Language supports all standard procedural programming constructs, but often extends them through integration into its more general symbolic programming environment. - [String Manipulation](https://reference.wolfram.com/language/guide/StringManipulation.en.md): Integrated into the core Wolfram Language is industrial-strength string manipulation, not only with ordinary regular expressions but also with the Wolfram Language's own powerful general symbolic string-pattern language. - [Parallel Programming](https://reference.wolfram.com/language/guide/ParallelComputing.en.md): The Wolfram Language provides a uniquely integrated and automated environment for parallel computing. With zero configuration, full interactivity, and seamless local and network operation, the symbolic character of the Wolfram Language allows immediate support of a variety of existing and new parallel programming paradigms and data-sharing models. - [Batch Execution](https://reference.wolfram.com/language/guide/RemoteBatchJobs.en.md): The Wolfram Language supplies a framework for submitting asynchronous jobs to various batch computation providers and subsequently querying submitted jobs for their status and results. Through Wolfram Compute Services, the WolframBatch provider handles all configuration and orchestration to let you instantly and robustly run any computation at supercomputer scale, with access to large-scale parallelism, large memory, large GPUs, etc. - [Code Compilation](https://reference.wolfram.com/language/guide/CodeCompilation.en.md): The Wolfram Language has advanced compilation capabilities that allow an increasingly wide range of Wolfram Language code to be compiled into native machine code. Advanced type inferencing allows types to be inferred automatically or specified in minimal ways by users. The Wolfram Compiler produces LLVM code and can generate executable code suitable not only for internal use by the Wolfram System, but also for linking into external programs. - [External Operations](https://reference.wolfram.com/language/guide/ExternalOperations.en.md): Tightly integrated into the Wolfram Language is a rich set of primitives for interacting with external environments. The Wolfram Language's symbolic architecture makes possible powerful symbolic representations for external constructs and functionality--allowing immediate application of the Wolfram Language's sophisticated algorithms and advanced programming paradigms. - [Package Development](https://reference.wolfram.com/language/guide/PackageDevelopment.en.md): The Wolfram Language is to its core a fundamentally extensible system, in which efficient, modular, reusable packages of any size can readily be created. The Wolfram Language's symbolic program and interface architecture allows it to provide a uniquely flexible modern software development environment with many important original features. - [Tuning & Debugging](https://reference.wolfram.com/language/guide/TuningAndDebugging.en.md): The Wolfram Language's highly optimized architecture makes it easy to create programs that are both elegant and efficient. Its symbolic character lets you immediately run and test even the smallest program fragments. And it provides full-scale software engineering support, from arbitrarily detailed compilation control to novel high-level symbolic analysis. - [Structured Datasets](https://reference.wolfram.com/language/guide/ComputationWithStructuredDatasets.en.md): The symbolic character of the Wolfram Language allows it to support an unprecedentedly flexible and general approach to structured datasets. Unifying both relational (SQL-like) and hierarchical (no-SQL) approaches, the Wolfram Language incorporates a new kind of uniquely powerful data query language--with seamless scaling from direct in-memory computation to computations backed by external files or databases. - [Knowledge Representation & Access](https://reference.wolfram.com/language/guide/KnowledgeRepresentationAndAccess.en.md): Deeply integrated into the Wolfram Language is access to the immense and continuously updated Wolfram Knowledgebase also used in Wolfram|Alpha. Free-form linguistics makes it easy to identify many millions of entities and many thousands of properties and automatically generate precise Wolfram Language representations suitable for extensive further computation. The Wolfram Language also supports custom entity stores that allow the same computations as the built-in knowledgebase, and can be associated with external relational databases. - [Wolfram Language Syntax](https://reference.wolfram.com/language/guide/Syntax.en.md): The Wolfram Language has a rich syntax carefully designed for consistency and efficient, readable entry of the Wolfram Language's many language, mathematical, and other constructs. In addition to ordinary linear ASCII input, the Wolfram Language also supports full 2D mathematical input. - [Free-Form & External Input](https://reference.wolfram.com/language/guide/FreeFormAndExternalInput.en.md): Building on the breakthrough natural language understanding capabilities of Wolfram|Alpha, the Wolfram Language has integrated features for accepting input in natural language and in other forms that require semantic understanding for interpretation. These features are important both in direct entry of Wolfram Language input and in calling on the Wolfram Language from APIs, forms, and other external and cloud constructs. ## Data Manipulation & Analysis - [Importing & Exporting](https://reference.wolfram.com/language/guide/ImportingAndExporting.en.md): The Wolfram Language automatically handles hundreds of data formats and subformats--all coherently integrated through the Wolfram Language's uniform use of symbolic expressions. For each particular format, the correspondence between representations inside and outside the Wolfram Language can be specified at any level of detail using the Wolfram Language's general data elements mechanism. - [Array Manipulation](https://reference.wolfram.com/language/guide/HandlingArraysOfData.en.md): The Wolfram Language routinely handles huge arrays of numeric, symbolic, textual, or any other data, with any dimension or structure. Arrays are fully integrated into the Wolfram Language, making possible extremely high-level array operations that are both elegant and efficient. - [Data Transformation & Filtering](https://reference.wolfram.com/language/guide/DataTransformsAndSmoothing.en.md): Directly integrated into the Wolfram Language's uniform architecture for handling lists of data is an array of highly optimized algorithms for transforming and smoothing datasets that can routinely involve millions of elements. - [Statistical Data Analysis](https://reference.wolfram.com/language/guide/Statistics.en.md): The Wolfram Language integrates many aspects of statistical data analysis, from getting and exploring data to building high-quality models and deducing consequences. The Wolfram Language provides multiple ways to get data, starting with built-in curated data sources, importing from a variety of file formats, or connecting to databases. Basic processing of data, including computing statistical quantities, smoothing, testing, and visualizing, gives a first level of analysis. By adding models to the mix, such as distributional or regression models, you can answer a wider range of analysis questions or even provide predictive capabilities. - [Machine Learning](https://reference.wolfram.com/language/guide/MachineLearning.en.md): Data-driven applications are ubiquitous (market analysis, agriculture, healthcare, transport networks, ...) and machine learning algorithms have been developed with the specific purpose of analyzing patterns and leveraging correlation within real-world measurements in order to turn data into applications. The Wolfram Language offers fully automated and highly customizable machine learning functions to perform classification, regression, clustering and many other operations. Classical methods are complemented by powerful, symbolic deep-learning frameworks and specialized pipelines for diverse data types such as image, video, text and audio. - [Data Visualization](https://reference.wolfram.com/language/guide/DataVisualization.en.md): Using a host of original algorithms developed at Wolfram Research, the Wolfram Language provides powerful functions that automate the process of creating cognitively and aesthetically compelling representations of structured and unstructured data--not only for points, lines, and surfaces, but also for graphs and networks. - [Report Generation](https://reference.wolfram.com/language/guide/AutomatedReports.en.md): Built into the Wolfram Language is a powerful automated report system that can create notebooks with arbitrarily elaborate formatting, interaction, and computation. Authored using standard Wolfram System editing, template notebooks contain slots that can be populated with data from any source, then processed using any Wolfram Language operations. The automated report can readily be performed both locally and in the cloud on a specified schedule. - [Tabular Processing](https://reference.wolfram.com/language/guide/TabularProcessing.en.md): Tabular data is data structured like a two-dimensional table, with each column of data representing a variable and being of the same type, such as numbers or dates, and each row representing a measurement of all the column variables. Tabular data is ubiquitous, such as in relational and multidimensional databases, spreadsheets and tabular data formats. Tabular data is easy to transform, visualize and model for insights. The Wolfram Language provides state-of-art functionality for tabular processing, from access to data sources, data cleaning to transforming, visualizing and modeling to gain insights to communicating the results for actions. - [Structured Datasets](https://reference.wolfram.com/language/guide/ComputationWithStructuredDatasets.en.md): The symbolic character of the Wolfram Language allows it to support an unprecedentedly flexible and general approach to structured datasets. Unifying both relational (SQL-like) and hierarchical (no-SQL) approaches, the Wolfram Language incorporates a new kind of uniquely powerful data query language--with seamless scaling from direct in-memory computation to computations backed by external files or databases. - [Database Access](https://reference.wolfram.com/language/guide/DatabaseConnectivity.en.md): The Wolfram Language includes powerful capabilities for working with many types of external databases, including relational (SQL), object store (NoSQL) and triple store (RDF/SPARQL). Wolfram Language entity stores are also closely integrated with relational databases, allowing many analysis operations specified in the Wolfram Language to be automatically executed in external relational databases. - [WDF (Wolfram Data Framework)](https://reference.wolfram.com/language/guide/WDFWolframDataFramework.en.md): WDF makes use of the Wolfram Language and the Wolfram Knowledgebase to provide a standardized computable description of real-world constructs and data. ## Visualization & Graphics - [Data Visualization](https://reference.wolfram.com/language/guide/DataVisualization.en.md): Using a host of original algorithms developed at Wolfram Research, the Wolfram Language provides powerful functions that automate the process of creating cognitively and aesthetically compelling representations of structured and unstructured data--not only for points, lines, and surfaces, but also for graphs and networks. - [Function Visualization](https://reference.wolfram.com/language/guide/FunctionVisualization.en.md): Long the standard for high-quality function and surface visualization, the Wolfram Language incorporates a host of original numeric, symbolic, and geometric algorithms that automate the immediate creation of highly aesthetic and technically correct 2D and 3D visualizations. - [Charts & Information Visualization](https://reference.wolfram.com/language/guide/ChartingAndInformationVisualization.en.md): The Wolfram Language's symbolic architecture and dynamic interface make possible a uniquely flexible and convenient approach to charting and information visualization. With sophisticated automation made possible by its computational aesthetics methodology, the Wolfram Language lets you immediately take data and produce compelling dynamic visualizations in a wide variety of formats--both predefined and arbitrarily extensible. - [Geographic Visualization](https://reference.wolfram.com/language/guide/GeoVisualization.en.md): The Wolfram Language provides geographic visualization functions to create maps from many types of data. Geo locations can be given as arbitrary geo positions or as geo entities in the Wolfram Knowledgebase. The plots make use of the full range of features of geo graphics, including projections, backgrounds and general styling. - [Dynamic Visualization](https://reference.wolfram.com/language/guide/DynamicVisualization.en.md): Building on the Wolfram Language's integrated symbolic architecture, it becomes easy to introduce powerful dynamic behavior into any aspect of visualization. Single Wolfram Language symbolic functions are all it takes to set up full interactive parameter explorations, animations, dynamic annotation, or drill-down information viewers. - [Options & Styling](https://reference.wolfram.com/language/guide/GraphicsOptionsAndStyling.en.md): The Wolfram Language provides hundreds of options to control every aspect of the construction and styling of graphics. The options are carefully designed to be both flexible and powerful, and to fit in with the Wolfram Language's sophisticated built-in algorithms for aesthetic optimization. - [Interactivity & Drawing](https://reference.wolfram.com/language/guide/GraphicsInteractivityAndDrawing.en.md): The Wolfram Language's unified symbolic graphics architecture makes possible powerful mixing of programmatic graphics generation with interactive editing and control. Adding a canvas provides a drawing surface that invokes attached drawing tools when selected. - [Symbolic Graphics Language](https://reference.wolfram.com/language/guide/SymbolicGraphicsLanguage.en.md): The Wolfram Language uses the powerful idea of building up all 2D and 3D graphics from symbolic primitives--which can be manipulated using all standard Wolfram Language functions and seamlessly integrated with text, math, or tables. Symbolic graphics can also be used as input--and can be made dynamic and interactive. - [Importing & Exporting](https://reference.wolfram.com/language/guide/ImportingAndExporting.en.md): The Wolfram Language automatically handles hundreds of data formats and subformats--all coherently integrated through the Wolfram Language's uniform use of symbolic expressions. For each particular format, the correspondence between representations inside and outside the Wolfram Language can be specified at any level of detail using the Wolfram Language's general data elements mechanism. - [Visualization Gallery](https://reference.wolfram.com/language/guide/VisualizationGallery.en.md): Select from hundreds of built-in Wolfram Language symbols to construct graphs and plots to best represent your data. Some options are automated for ease of use, but all can be customized. Visualize and highlight individual data pointsCreate line plots including 3D, stepped and contourCustomize 2D and 3D bar charts and gaugesVisualize how parts contribute to the whole with Pie and Sector plot optionsPlot datasets in 2D and 3D region plotsRepresent statistical data including histograms and distributionsCreate and customize high-resolution, interactive 3D surface plotsRepresent vertices and edges with different layout optionsPlot a list of vectors in a plane or in spaceClearly display geographic data with custom mapsVisualize and graph functionsDisplay information in unique ways ## Machine Learning & LLMs - [Machine Learning Overview](https://reference.wolfram.com/language/guide/MachineLearning.en.md): Data-driven applications are ubiquitous (market analysis, agriculture, healthcare, transport networks, ...) and machine learning algorithms have been developed with the specific purpose of analyzing patterns and leveraging correlation within real-world measurements in order to turn data into applications. The Wolfram Language offers fully automated and highly customizable machine learning functions to perform classification, regression, clustering and many other operations. Classical methods are complemented by powerful, symbolic deep-learning frameworks and specialized pipelines for diverse data types such as image, video, text and audio. - [Neural Networks](https://reference.wolfram.com/language/guide/NeuralNetworks.en.md): Neural networks are a powerful machine learning technique that allows a modular composition of operations (layers) that can model a wide variety of functions with high execution and training performance. Neural networks are typically resistant to noisy input and offer good generalization capabilities. They are a central component in many areas, like image and audio processing, natural language processing, robotics, automotive control, medical systems and more. The Wolfram Language offers advanced capabilities for the representation, construction, training and deployment of neural networks. A large variety of layer types is available for symbolic composition and manipulation. Thanks to dedicated encoders and decoders, diverse data types such as image, text and audio can be used as input and output, deepening the integration with the rest of the Wolfram Language. - [Large Language Models (LLMs)](https://reference.wolfram.com/language/guide/LLMFunctions.en.md): The Wolfram Language includes a variety of capabilities for making use of large-language models (LLMs). Chat Notebooks provide interactive chat-based access, including the ability to offer natural-language-based assistance in using the Wolfram Language. The Wolfram Language also includes powerful functions for calling LLM functionality programmatically and for allowing LLMs to access Wolfram Language tools. The Wolfram Prompt Repository provides a curated collection of prompts for delivering a range of LLM-based capabilities. - [Image AI](https://reference.wolfram.com/language/guide/ComputerVision.en.md): Using a variety of state-of-the-art methods, the Wolfram Language provides immediate functions for image identification and object detection and recognition, as well as feature extraction. The Wolfram Language supports specific geometrical features such as edges and corners, as well as general keypoints that can be used to register and compare images. - [Text AI](https://reference.wolfram.com/language/guide/NaturalLanguageProcessing.en.md): Natural language processing deals with understanding text and spoken words as a human would. It is a fundamental component of many human/machine interactions (vocal assistants, dictation software, voice-operated systems, ...), text processing, analysis (suggestions, keyword spotting, translation, ...) and much more. The Wolfram Language natural language processing functionality is a combination of rule-based and machine learning language models, including LLMs. It builds on top of advanced text mining and string manipulation capabilities and is integrated with a large visualization suite and extensive built-in linguistic data. - [Speech AI](https://reference.wolfram.com/language/guide/SpeechComputation.en.md): Speech computation consists of processing speech signals and analyzing them to infer information. Operations include changing the speaker pitch, detecting voiced intervals and recognizing the speaker or the speech. The Wolfram Language provides built-in and fully integrated audio processing, statistical analysis, visualization and machine learning, which enables easy-to-prototype and highly efficient speech computations. ## Symbolic & Numeric Computation - [Mathematical Functions](https://reference.wolfram.com/language/guide/MathematicalFunctions.en.md): The Wolfram Language has the most extensive collection of mathematical functions ever assembled. Often relying on original results and algorithms developed at Wolfram Research over the past two decades, each function supports a full range of symbolic operations, as well as efficient numerical evaluation to arbitrary precision, for all complex values of parameters. - [Numbers & Precision](https://reference.wolfram.com/language/guide/NumericalEvaluationAndPrecision.en.md): In two decades of intense algorithmic development, the Wolfram Language has established a new level of numerical computation. Particularly notable are its many original highly efficient algorithms, its methodology for automatic algorithm selection, and its systemwide support for automatic error tracking and arbitrary-precision arithmetic. - [Matrices & Linear Algebra](https://reference.wolfram.com/language/guide/MatricesAndLinearAlgebra.en.md): The Wolfram Language automatically handles both numeric and symbolic matrices, seamlessly switching among large numbers of highly optimized algorithms. Using many original methods, the Wolfram Language can handle numerical matrices of any precision, automatically invoking machine-optimized code when appropriate. The Wolfram Language handles both dense and sparse matrices and can routinely operate on matrices with millions of entries. - [Formula Manipulation](https://reference.wolfram.com/language/guide/FormulaManipulation.en.md): The Wolfram Language handles formulas of all types, from polynomials with millions of terms to complex combinations of higher mathematical functions. It provides powerful general transformation and simplification functions that automatically call on thousands of rules and algorithms--many original to Wolfram Research. - [Equation Solving](https://reference.wolfram.com/language/guide/EquationSolving.en.md): Built into the Wolfram Language is the world's largest collection of both numerical and symbolic equation solving capabilities--with many original algorithms, all automatically accessed through a small number of exceptionally powerful functions. The Wolfram Language's symbolic architecture allows both equations and their solutions to be conveniently given in symbolic form, and immediately integrated into computations and visualizations. - [Calculus](https://reference.wolfram.com/language/guide/Calculus.en.md): In calculus even more than other areas, the Wolfram Language packs centuries of mathematical development into a small number of exceptionally powerful functions. Continually enhanced by new methods being discovered at Wolfram Research, the algorithms in the Wolfram Language probably now reach almost every integral and differential equation for which a closed form can be found. - [Optimization](https://reference.wolfram.com/language/guide/Optimization.en.md): Integrated into the Wolfram Language is a full range of state-of-the-art local and global optimization techniques, both numeric and symbolic, including constrained nonlinear optimization, interior point methods, and integer programming--as well as original symbolic methods. The Wolfram Language's symbolic architecture provides seamless access to industrial-strength system and model optimization, efficiently handling million-variable linear programming and multithousand-variable nonlinear problems. - [Probability & Statistics](https://reference.wolfram.com/language/guide/ProbabilityAndStatistics.en.md): Probability and statistics are used to model uncertainty from a variety of sources, such as incomplete or simplified models. Yet you can build useful models for aggregate or overall behavior of the system in question. These types of models are now universally used across all areas of science, technology, and business. The Wolfram Language uses symbolic distributions and processes as models for random variables and random processes. The models can be automatically computed from data or analytically constructed from a rich library of built-in distributions and processes. The models can be simulated or used to directly answer a variety of questions. - [Discrete Math](https://reference.wolfram.com/language/guide/DiscreteMathematics.en.md): The Wolfram Language has been used to make many important discoveries in discrete mathematics over the past two decades. Its integration of highly efficient and often original algorithms together with its high-level symbolic language has made it a unique environment for the exploration, development, and application of discrete mathematics. - [Boolean Computation](https://reference.wolfram.com/language/guide/BooleanComputation.en.md): Building on its core symbolic architecture, the Wolfram Language gives immediate access to the latest in industrial-strength Boolean computation. With highly general symbolic representations of Boolean functions, with full support for don't-care arguments and values, the Wolfram Language provides state-of-the-art Boolean function transformation, minimization, elimination, satisfiability, and analysis, making possible verification, testing, and other applications involving hundreds to hundreds of thousands of variables. ## Higher Mathematical Computation - [Polynomial Algebra](https://reference.wolfram.com/language/guide/PolynomialAlgebra.en.md): Polynomial algorithms are at the core of classical computer algebra. Incorporating methods that span from antiquity to the latest cutting-edge research at Wolfram Research, the Wolfram Language has the world's broadest and deepest integrated web of polynomial algorithms. Carefully tuned strategies automatically select optimal algorithms, allowing large-scale polynomial algebra to become a routine part of many types of computations. - [Linear Algebra](https://reference.wolfram.com/language/guide/MatricesAndLinearAlgebra.en.md): The Wolfram Language automatically handles both numeric and symbolic matrices, seamlessly switching among large numbers of highly optimized algorithms. Using many original methods, the Wolfram Language can handle numerical matrices of any precision, automatically invoking machine-optimized code when appropriate. The Wolfram Language handles both dense and sparse matrices and can routinely operate on matrices with millions of entries. - [Tensor Algebra](https://reference.wolfram.com/language/guide/Tensors.en.md): The Wolfram Language's uniform representation of vectors and matrices as lists automatically extends to tensors of any rank, allowing the Wolfram Language's powerful list manipulation functions immediately to be applied to tensors, both numerical and symbolic. - [Real & Complex Analysis](https://reference.wolfram.com/language/guide/Calculus.en.md): In calculus even more than other areas, the Wolfram Language packs centuries of mathematical development into a small number of exceptionally powerful functions. Continually enhanced by new methods being discovered at Wolfram Research, the algorithms in the Wolfram Language probably now reach almost every integral and differential equation for which a closed form can be found. - [Discrete Calculus](https://reference.wolfram.com/language/guide/DiscreteCalculus.en.md): Discrete calculus is the calculus of sequences, a.k.a. discrete time signals. Discrete calculus is the foundation for continuous calculus and used to derive numerical algorithms for it. It is the calculus used for discrete-time signal processing, discrete-time control systems and digital image processing. It is also a calculus used for combinatorics, discrete probability, finance and analysis of algorithms. The Wolfram Language provides extensive coverage of discrete calculus and its applications, including a large library of special sequences and sequence guessing from data; state-of-the-art solvers for sums, difference equations and many more; and full support for its many application domains, from signal processing and control systems to probability and number theory. - [Iterated Maps & Fractals](https://reference.wolfram.com/language/guide/IteratedMapsAndFractals.en.md): The Wolfram Language has flexible capabilities for handling iterated maps, as well as highly optimized algorithms for common objects of investigation such as Julia sets and the Mandelbrot set. - [Neural Networks](https://reference.wolfram.com/language/guide/NeuralNetworks.en.md): Neural networks are a powerful machine learning technique that allows a modular composition of operations (layers) that can model a wide variety of functions with high execution and training performance. Neural networks are typically resistant to noisy input and offer good generalization capabilities. They are a central component in many areas, like image and audio processing, natural language processing, robotics, automotive control, medical systems and more. The Wolfram Language offers advanced capabilities for the representation, construction, training and deployment of neural networks. A large variety of layer types is available for symbolic composition and manipulation. Thanks to dedicated encoders and decoders, diverse data types such as image, text and audio can be used as input and output, deepening the integration with the rest of the Wolfram Language. - [Probability Theory](https://reference.wolfram.com/language/guide/ProbabilityAndStatistics.en.md): Probability and statistics are used to model uncertainty from a variety of sources, such as incomplete or simplified models. Yet you can build useful models for aggregate or overall behavior of the system in question. These types of models are now universally used across all areas of science, technology, and business. The Wolfram Language uses symbolic distributions and processes as models for random variables and random processes. The models can be automatically computed from data or analytically constructed from a rich library of built-in distributions and processes. The models can be simulated or used to directly answer a variety of questions. - [Random Processes](https://reference.wolfram.com/language/guide/RandomProcesses.en.md): A random process models the progression of a system over time, where the evolution is random rather than deterministic. The key point is that observations that are close in time are dependent, and this can be used to model, simulate, and predict the behavior of the process. Random processes are used in a variety of fields including economics, finance, engineering, physics, and biology. Building on its strong capabilities for distributions, the Wolfram Language provides cohesive and comprehensive random process support. Using a symbolic representation of a process makes it easy to simulate its behavior, estimate parameters from data, and compute state probabilities at different times. There is additional functionality for special classes of random processes such as Markov chains, queues, time series, and stochastic differential equations. - [Discrete Math](https://reference.wolfram.com/language/guide/DiscreteMathematics.en.md): The Wolfram Language has been used to make many important discoveries in discrete mathematics over the past two decades. Its integration of highly efficient and often original algorithms together with its high-level symbolic language has made it a unique environment for the exploration, development, and application of discrete mathematics. - [Number Theory](https://reference.wolfram.com/language/guide/NumberTheory.en.md): Packing a large number of sophisticated algorithms--many recent and original--into a powerful collection of functions, the Wolfram Language draws on almost every major result in number theory. A key tool for two decades in the advance of the field, the Wolfram Language's symbolic architecture and web of highly efficient algorithms make it a unique platform for number theoretic experiment, discovery, and proof. - [Group Theory](https://reference.wolfram.com/language/guide/GroupTheory.en.md): The Wolfram Language offers a coherent collection of algorithms and data structures for working with permutation groups. Building upon the Wolfram Language's proven symbolic architecture, permutations can operate on group-theoretical data structures, as well as on arbitrary symbolic Wolfram Language expressions. State-of-the-art algorithms enable the efficient manipulation of very large groups. Commonly used groups are conveniently represented as built-in objects. - [Mathematical Data](https://reference.wolfram.com/language/guide/MathematicalData.en.md): The Wolfram Language provides direct access to a large volume of mathematical data, specially organized and created for the Wolfram Language. The data is available in a wide range of forms suitable for direct integration into Wolfram Language computations. - [Cryptography](https://reference.wolfram.com/language/guide/Cryptography.en.md): The Wolfram Language includes built-in functions for both symmetric (private-key) and asymmetric (public-key) cryptography, including RSA, elliptic curve and other methods. - [Logic & Boolean Algebra](https://reference.wolfram.com/language/guide/LogicAndBooleanAlgebra.en.md): The Wolfram Language represents Boolean expressions in symbolic form, so they can not only be evaluated, but also be symbolically manipulated and transformed. Incorporating state-of-the-art quantifier elimination, satisfiability, and equational logic theorem proving, the Wolfram Language provides a powerful framework for investigations based on Boolean algebra. - [Theorem Proving](https://reference.wolfram.com/language/guide/TheoremProving.en.md): The Wolfram Language performs theorem proving in many forms and many domains. Sometimes the theorem proving is an implicit part of other operations; sometimes it is explicit. For axiom systems specified using equational logic, the Wolfram Language includes state-of-the-art capabilities for generating full symbolic proof objects. ## Strings & Text - [String Manipulation](https://reference.wolfram.com/language/guide/StringManipulation.en.md): Integrated into the core Wolfram Language is industrial-strength string manipulation, not only with ordinary regular expressions but also with the Wolfram Language's own powerful general symbolic string-pattern language. - [Working with Templates](https://reference.wolfram.com/language/guide/WorkingWithTemplates.en.md): The Wolfram Language has a powerful symbolic templating framework that can be used with strings, files, XML-like structures, notebooks, and other constructs. - [Free-Form & External Input](https://reference.wolfram.com/language/guide/FreeFormAndExternalInput.en.md): Building on the breakthrough natural language understanding capabilities of Wolfram|Alpha, the Wolfram Language has integrated features for accepting input in natural language and in other forms that require semantic understanding for interpretation. These features are important both in direct entry of Wolfram Language input and in calling on the Wolfram Language from APIs, forms, and other external and cloud constructs. - [Setting Up Interpreters](https://reference.wolfram.com/language/guide/InterpretingStrings.en.md): The Wolfram Language provides a uniform mechanism for specifying how inputs of different types should be interpreted as Wolfram Language or WDF expressions, for example in forms or APIs. The interpretations can involve either structural or semantic conversions, and the specification of the interpretation can be used to generate interface elements such as input fields for requesting input suitable for interpretation in a form. - [Importing & Exporting](https://reference.wolfram.com/language/guide/ImportingAndExporting.en.md): The Wolfram Language automatically handles hundreds of data formats and subformats--all coherently integrated through the Wolfram Language's uniform use of symbolic expressions. For each particular format, the correspondence between representations inside and outside the Wolfram Language can be specified at any level of detail using the Wolfram Language's general data elements mechanism. - [Text Manipulation](https://reference.wolfram.com/language/guide/ProcessingTextualData.en.md): The Wolfram Language has uniquely flexible capabilities for processing textual data. It can operate at the level of strings and characters or at the level of words and sentences. It can also operate semantically, through its extensive built-in natural language understanding capabilities as well as its ability to use LLM functionality, including through the Wolfram Prompt Repository. - [Text Analysis](https://reference.wolfram.com/language/guide/TextAnalysis.en.md): The Wolfram Language includes increasingly sophisticated tools for analyzing and visualizing text, both structurally and semantically. - [Linguistic Data](https://reference.wolfram.com/language/guide/LinguisticData.en.md): The Wolfram Language has not only convenient built-in multilingual dictionaries, but also built-in information on word meaning, structure, and usage, as well as the relationship between words. Together with the Wolfram Language's tightly integrated string manipulation functions, visualization, and data import and export, this provides a uniquely powerful platform for natural language computing. - [Text Search](https://reference.wolfram.com/language/guide/TextSearch.en.md): The Wolfram Language provides integrated, highly efficient capabilities for searching large volumes of text. In typical usage, an index is built for a collection of documents, then repeated searches are performed with this index. The index can be incrementally updated whenever needed. - [Sequence Analysis](https://reference.wolfram.com/language/guide/SequenceAlignmentAndComparison.en.md): The Wolfram Language includes state-of-the-art algorithms for sequence alignment and comparison, capable of handling strings and lists containing very large numbers of elements. ## Graphs & Networks - [Graphs & Networks Overview](https://reference.wolfram.com/language/guide/GraphsAndNetworks.en.md): Graphs and networks are all around us, including technological networks (the internet, power grids, communication networks, transportation networks, ...), social networks (social graphs, affiliation networks, ...), information networks (World Wide Web, citation graphs, patent networks, ...), biological networks (biochemical networks, neural networks, food webs, ...), and many more. Graphs provide a structural model that makes it possible to analyze and understand how many separate systems act together. The Wolfram Language provides state-of-the-art functionality for modeling, analyzing, synthesizing, and visualizing graphs and networks. Whether those graphs are small and diagrammatic or large and complex, the Wolfram Language provides numerous high-level functions for creating or computing with graphs. Graphs are first-class citizens in the Wolfram Language; they can be used as input and output and they are deeply integrated into the rest of the Wolfram Language. - [Graph Construction & Representation](https://reference.wolfram.com/language/guide/GraphConstructionAndRepresentation.en.md): Graphs are first-class citizens in the Wolfram Language and can be used as input, output, in programs, and in documents. Undirected and directed graphs are treated uniformly and support a number of standard properties for vertices and edges. Importantly, graphs also support custom properties for modeling or computational flexibility. Graphs can be converted to a number of different representations, including matrices. Graphs can be exported with high fidelity to numerous file formats. Graphs can be constructed in a variety of ways. They can be built from vertices and edges directly in a symbolic form. They can come from built-in curated collections of theoretical or empirical graphs. Special graphs can be generated from parametric specifications. Random graphs following a variety of graph distributions allow you to build simulated internets or citation graphs and test algorithms. Graphs can be fully specified by several types of matrices, or they can be imported from numerous supported file formats. Graphs can also be constructed in several steps by performing operations on graphs. - [Graph Visualization](https://reference.wolfram.com/language/guide/GraphVisualization.en.md): Graphs provide great information visualization. Highlighting graph elements will let information stand out. By using algorithmic graph layouts, much of the structure in a graph will be self-evident, such as connected components. By attaching interactive effects to graph elements, you can provide information drill-down. The Wolfram Language provides extensive collections of carefully designed graph styles, highlight styles, and layout algorithms. The Wolfram Language provides in-depth support for every aspect of styling, labeling, and shape generation for graphs, as well as carefully designed libraries of edge and vertex shapes. - [Graph Properties & Measurements](https://reference.wolfram.com/language/guide/GraphPropertiesAndMeasurements.en.md): Many algorithms and procedures require graphs with certain properties. These can be basic properties, such as being undirected, or deeper topology properties, such as being connected or acyclic. In some areas, a key problem is to decide whether two graphs are the same if the vertex names are replaced, i.e. to test whether they are isomorphic. - [Computations on Graphs](https://reference.wolfram.com/language/guide/ComputationOnGraphs.en.md): The Wolfram System has extensive graph computation capabilities, including finding paths, cycles, and subgraphs based on connectivity to direct support for traversal-based programming. - [Social Network Analysis](https://reference.wolfram.com/language/guide/SocialNetworks.en.md): Social networks represent relationships involving social entities such as friendships among individuals, communication in a group, or transactions between corporations. Finding important actors, discovering cohesive groups or communities, or identifying actors that are similar in some way are all examples of analysis that can be done for social networks. Building on its strong graph capabilities, the Wolfram Language allows you to model and analyze networks in a flexible and powerful way. Social networks are accessible from a variety of sources, including directly from social media (Facebook, Twitter, ...). High-level functions make it easy to detect communities, find cohesive groups, and visualize the results. A full suite of social network measures makes it possible to explore networks, rank actors from their centralities, or provide recommendations based on similar actors. ## Images - [Image Computation Overview](https://reference.wolfram.com/language/guide/ImageProcessing.en.md): The Wolfram Language provides broad and deep built-in support for both programmatic and interactive modern industrial-strength image processing--fully integrated with the Wolfram Language's powerful mathematical and algorithmic capabilities. The Wolfram Language's unique symbolic architecture and notebook paradigm allow images in visual form to be included and manipulated directly, both interactively and in programs. - [Basic Image Manipulation](https://reference.wolfram.com/language/guide/BasicImageManipulation.en.md): The Wolfram Language's symbolic architecture makes it possible to treat images just like any other form of expression--applying functions to them, displaying and inputting them in notebooks, and including them directly in programs. The Wolfram Language provides a streamlined collection of functions for basic image manipulation, fully integrated with more advanced processing and its overall language and interactive capabilities. - [Image Filtering](https://reference.wolfram.com/language/guide/ImageFilteringAndNeighborhoodProcessing.en.md): The Wolfram Language not only includes highly optimized implementations of standard image processing filters, but also uses its general symbolic architecture to allow arbitrarily sophisticated filtering and neighborhood processing strategies to be set up using the full mathematical and algorithmic power of the Wolfram Language. - [Image Segmentation](https://reference.wolfram.com/language/guide/SegmentationAnalysis.en.md): The Wolfram Language includes a variety of low- and high-level image segmentation techniques from clustering, watershed and region growing to semantic and object segmentation using neural networks. Segmentation functions can be used together with a rich set of functions for pre- and post-processing for more robust results as well as analysis functions performed on the result of the segmentation. - [Computer Vision](https://reference.wolfram.com/language/guide/ComputerVision.en.md): Using a variety of state-of-the-art methods, the Wolfram Language provides immediate functions for image identification and object detection and recognition, as well as feature extraction. The Wolfram Language supports specific geometrical features such as edges and corners, as well as general keypoints that can be used to register and compare images. - [Image Restoration](https://reference.wolfram.com/language/guide/ImageRestoration.en.md): The Wolfram Language not only includes highly optimized implementations of standard image restoration filters, but also provides sophisticated functions and algorithms allowing retouching, denoising, and deblurring images using state-of-the-art techniques. - [Alignment & Registration](https://reference.wolfram.com/language/guide/ImageGeometry.en.md): Geometric operations applied to images are typically used to transform an image and align it with another image for reconstruction or comparison, to line up features for stitching or to simply create an effect such as morphing. The Wolfram Language supports basic as well as highly sophisticated functions for manipulating image geometry, including state-of-the-art image transformation discovery capabilities. - [Morphological Analysis](https://reference.wolfram.com/language/guide/MathematicalMorphology.en.md): Combining methods from set theory, topology, and discrete mathematics, mathematical morphology provides a powerful approach to processing images and other discrete data. The Wolfram Language includes an extensive and efficient implementation of mathematical morphology, fully integrated with the Wolfram Language's general image and data processing. - [3D Images](https://reference.wolfram.com/language/guide/3DImages.en.md): The Wolfram Language supports not only ordinary 2D images, but also 3D volumetric images, corresponding to 3D arrays of voxels. It allows many kinds of analysis on 3D images, some analogous to 2D images, and some specific to 3D. In the Wolfram Language, 3D images can involve any number of color channels, as well as opacity. - [Importing & Exporting Images](https://reference.wolfram.com/language/guide/RasterImageFormats.en.md): The Wolfram Language can export anything it displays--graphics, text, formulas, notebooks--to any standard raster image format. It can also import from such formats to give Wolfram Language symbolic graphics, arrays of values, or metadata in various forms. - [Color-Related Computation](https://reference.wolfram.com/language/guide/ColorProcessing.en.md): The Wolfram Language provides convenient functions and algorithms for manipulating colors and color images, with full generality for arbitrary numbers of color channels. ## Geometry - [Geometric Computation Overview](https://reference.wolfram.com/language/guide/GeometricComputation.en.md): Geometric regions such as points, curves, surfaces, volumes, and their higher-dimensional analogs occur in a variety of contexts, including mathematics, engineering, science, computer games, and geography. The Wolfram Language provides fully integrated capabilities for creating, analyzing, solving over, and visualizing regions. Regions can be created by using common special regions, from formulas, as meshes of simple regions, and by combining or modifying existing regions. Regions can be analyzed by computing standard properties such as dimension, measure (length, area, volume, etc.), nearest points, etc. Regions can be used as constraints to a large number of solvers, including equation solving, optimization, and solving partial differential equations. Regions are first-class citizens in the Wolfram Language; they can be used as input and output, and they are deeply integrated into the rest of the Wolfram Language. - [Plane Geometry](https://reference.wolfram.com/language/guide/PlaneGeometry.en.md): The Wolfram Language provides fully integrated support for plane geometry, including basic regions such as points, lines, triangles, and disks; functions for computing basic properties such as arc length and area; and nearest points to solvers to find the intersection of regions or integrals over regions. - [Solid Geometry](https://reference.wolfram.com/language/guide/SolidGeometry.en.md): The Wolfram Language provides fully integrated support for solid geometry, including basic regions such as points, lines, planes, and spheres; functions for computing basic properties such as arc length, surface area, and volume; and nearest points to solvers to find the intersection of regions or integrals over regions. - [Basic Geometric Regions](https://reference.wolfram.com/language/guide/GeometricSpecialRegions.en.md): The Wolfram Language provides a rich collection of basic regions, ranging from simple triangles and infinite lines to general ellipsoids and conic hulls. Many basic regions are also defined for any dimension. Basic regions work just like any other region in the Wolfram Language and can be analyzed, used as input to solvers, or used as a building block to construct more complex regions. - [Mesh-Based Geometric Regions](https://reference.wolfram.com/language/guide/MeshRegions.en.md): The Wolfram Language provides rich support for mesh-based regions, including a boundary representation where the region is represented by its boundary (curves, surfaces, etc.) or where the region is represented as the disjoint union of simple cells. Mesh-based regions can be constructed in a variety of ways, including from points (Delaunay, convex hull, etc.), as a discretization of graphics (2D and 3D), as a discretization of any other region, or directly. Mesh-based regions work just like any other region in the Wolfram Language and can be analyzed, used as input to solvers, or used as a building block to construct more complex regions. - [Derived Geometric Regions](https://reference.wolfram.com/language/guide/DerivedRegions.en.md): The Wolfram Language provides several ways of deriving new regions from existing ones, including combining them through Boolean operations and transforming them through a mapping. - [Geometric Properties](https://reference.wolfram.com/language/guide/GeometricPropertiesAndMeasures.en.md): The Wolfram Language supports a broad range of standard properties and measures for geometric regions, including point membership tests; integral measures such as length, area, volume, and centroid; or optimization measures such as nearest point or distance. - [Geometric Solvers](https://reference.wolfram.com/language/guide/GeometricSolvers.en.md): The Wolfram Language deeply integrates regions into high-level solvers, including the ability to integrate or solve partial differential equations over regions, solve equations and inequalities with region constraints, or optimize over regions. The results can be either symbolic and exact or numeric and approximate. - [Geometric Transformations](https://reference.wolfram.com/language/guide/GeometricTransforms.en.md): The Wolfram Language's symbolic architecture and sophisticated mathematical capabilities allow it to take a uniquely high-level approach to geometric transformations--supporting complete geometric, matrix, and functional representations in any number of dimensions, whether for mechanical systems, computer graphics, or pure mathematics. - [Importing & Exporting](https://reference.wolfram.com/language/guide/3DGeometryAndModelingFormats.en.md): The Wolfram Language supports import and export of 3D geometry from all standard formats--with its symbolic representation of 3D objects allowing immediate faithful interchange. - [3D Printing](https://reference.wolfram.com/language/guide/3DPrinting.en.md): The Wolfram Language provides fully integrated capabilities to directly 3D print geometric models, using either an online print service or your own printer. Geometric models suitable for printing can be generated from a variety of plot functions, directly from curated collections, or imported from files and URLs, as well as from geometric regions. Several tools provide utilities for analyzing, repairing, and adjusting models. ## Sound & Video - [Sound Generation](https://reference.wolfram.com/language/guide/SoundAndSonification.en.md): The Wolfram Language supports state-of-the-art sound generation, providing both arbitrary waveform synthesis from functions and data, and symbolic note-based MIDI-style sound synthesis. It also supports translation of arbitrary text, math, programs, and graphics to speech. - [Audio Processing](https://reference.wolfram.com/language/guide/AudioProcessing.en.md): Digital audio is widely available from speech, music, and natural sounds, most of which can also be algorithmically synthesized. Digital audio can be manipulated in a variety of ways, including editing (trim, split, join, ...), enhancing (amplify, denoise, ...), analyzing (visualize, classify, ...), and creating effects (pitch shift, adding reverb, ...). The Wolfram Language provides fully integrated support for audio, including fast in-memory data and large out-of-core files. The built-in audio supports a range of uses, from immediate playing and scrubbing to advanced programmatic processing and analysis. - [Signal Processing](https://reference.wolfram.com/language/guide/SignalProcessing.en.md): Signals are sequences over time and occur in many different domains, including technical (speed, acceleration, temperature, ...), medical (ECG, EEG, blood pressure, ...) and financial (stock prices, commodity prices, exchange rates, ...). Signal processing involves transforming and filtering signals to improve quality and extract information, as well as detecting events. The Wolfram Language has powerful signal processing capabilities, including digital and analog filter design, filtering, and signal analysis using the state-of-the-art algebraic and numerical methods that can be applied to any data. - [Importing & Exporting Sound](https://reference.wolfram.com/language/guide/AudioFormats.en.md): The Wolfram Language supports all standard raster audio formats and codecs, with options to allow detailed control over encoding and compression. The Wolfram Language also allows conversion between MIDI and its integrated symbolic note-based audio representation. - [Video Processing](https://reference.wolfram.com/language/guide/VideoProcessing.en.md): The Wolfram Language supports video objects as first-class citizens, enabling programmatic access, processing and analysis of large number of multimedia containers and codecs. Together with complete stacks for image and audio processing, this opens up video processing from simple processing to highly sophisticated analysis. ## Geographic Data & Computation - [Maps & Cartography](https://reference.wolfram.com/language/guide/MapsAndCartography.en.md): The Wolfram Language has fully integrated capabilities for creating highly customized maps, as well as detailed built-in geographic information about all parts of the world. Maps in the Wolfram Language are defined both by geometric and graphical primitives, and by actual geographic entities, which can be entered using free-form linguistics. - [Geographic Data & Entities](https://reference.wolfram.com/language/guide/GeographicData.en.md): The Wolfram Language has built-in access to extensive geographic data, including detailed worldwide maps and computable information on millions of geographic entities. Free-form linguistic input makes it easy to specify geographic entities and classes of entities (e.g. counties in Illinois). The Wolfram Language then provides an integrated symbolic representation for geographic constructs, together with detailed ontological classification and the ability to do sophisticated geodetic computations, as well as computations on socioeconomic and other data. - [Locations, Paths & Routing](https://reference.wolfram.com/language/guide/LocationsPathsAndRouting.en.md): The Wolfram Language provides convenient functions for a wide range of local and travel-related geo computations. - [Geodetic Computation](https://reference.wolfram.com/language/guide/Geodesy.en.md): The Wolfram Language provides state-of-the-art high-precision geodesy computation, supporting all standard datums and projections. - [Importing & Exporting](https://reference.wolfram.com/language/guide/ImportingAndExporting.en.md): The Wolfram Language automatically handles hundreds of data formats and subformats--all coherently integrated through the Wolfram Language's uniform use of symbolic expressions. For each particular format, the correspondence between representations inside and outside the Wolfram Language can be specified at any level of detail using the Wolfram Language's general data elements mechanism. - [Socioeconomic Data](https://reference.wolfram.com/language/guide/SocioeconomicAndDemographicData.en.md): The Wolfram Language provides seamless access to the curated and continuously updated Wolfram Knowledgebase, which includes a wide range of types of socioeconomic and demographic data. Free-form linguistics provides a convenient mechanism for accessing all available data; more common categories also have specific associated Wolfram Language functions. - [Weather Data](https://reference.wolfram.com/language/guide/WeatherData.en.md): The Wolfram Language has direct access to a worldwide feed of real-time weather data, together with complete historical data, stretching back more than a century in many locations. Within the Wolfram Language, weather data immediately becomes fully computable, using symbolic representations for measured quantities, geo positions, dates, time series, etc. ## Knowledge Representation & Natural Language - [Entities](https://reference.wolfram.com/language/guide/KnowledgeRepresentationAndAccess.en.md): Deeply integrated into the Wolfram Language is access to the immense and continuously updated Wolfram Knowledgebase also used in Wolfram|Alpha. Free-form linguistics makes it easy to identify many millions of entities and many thousands of properties and automatically generate precise Wolfram Language representations suitable for extensive further computation. The Wolfram Language also supports custom entity stores that allow the same computations as the built-in knowledgebase, and can be associated with external relational databases. - [Lists](https://reference.wolfram.com/language/guide/ListManipulation.en.md): Lists are central constructs in the Wolfram Language, used to represent collections, arrays, sets, and sequences of all kinds. Lists can have any structure and size and can routinely involve even millions of elements. Well over a thousand built-in functions throughout the Wolfram Language operate directly on lists, making lists a powerful vehicle for interoperability. - [Associations](https://reference.wolfram.com/language/guide/Associations.en.md): Along with lists, associations are fundamental constructs in the Wolfram Language. They associate keys with values, allowing highly efficient lookup and updating, even with millions of elements. Associations provide generalizations of symbolically indexed lists, associative arrays, dictionaries, hashmaps, structs, and a variety of other powerful data structures. - [Datasets](https://reference.wolfram.com/language/guide/ComputationWithStructuredDatasets.en.md): The symbolic character of the Wolfram Language allows it to support an unprecedentedly flexible and general approach to structured datasets. Unifying both relational (SQL-like) and hierarchical (no-SQL) approaches, the Wolfram Language incorporates a new kind of uniquely powerful data query language--with seamless scaling from direct in-memory computation to computations backed by external files or databases. - [Units & Measures](https://reference.wolfram.com/language/guide/Units.en.md): The Wolfram Language allows you to do arithmetic not only with symbols and numbers, but also with units. The Wolfram Language's integration with Wolfram|Alpha allows for a sophisticated unit system that combines the flexibility of free-form linguistics with the computational power of numerical and symbolic algorithms. The units framework integrates seamlessly with visualization, numeric and algebraic computation functions. It also supports dimensional analysis, as well as purely symbolic operations on quantities. - [Dates & Times](https://reference.wolfram.com/language/guide/DateAndTime.en.md): The Wolfram Language has a highly flexible system for representing dates and times symbolically and performing computations on them. It can also input and output dates and times in a wide range of formats, as well as handle all standard calendars. - [Natural Language Understanding](https://reference.wolfram.com/language/guide/FreeFormAndExternalInput.en.md): Building on the breakthrough natural language understanding capabilities of Wolfram|Alpha, the Wolfram Language has integrated features for accepting input in natural language and in other forms that require semantic understanding for interpretation. These features are important both in direct entry of Wolfram Language input and in calling on the Wolfram Language from APIs, forms, and other external and cloud constructs. - [Natural Language Processing](https://reference.wolfram.com/language/guide/TextAnalysis.en.md): The Wolfram Language includes increasingly sophisticated tools for analyzing and visualizing text, both structurally and semantically. - [Large Language Models (LLMs)](https://reference.wolfram.com/language/guide/LLMFunctions.en.md): The Wolfram Language includes a variety of capabilities for making use of large-language models (LLMs). Chat Notebooks provide interactive chat-based access, including the ability to offer natural-language-based assistance in using the Wolfram Language. The Wolfram Language also includes powerful functions for calling LLM functionality programmatically and for allowing LLMs to access Wolfram Language tools. The Wolfram Prompt Repository provides a curated collection of prompts for delivering a range of LLM-based capabilities. - [Interpreters](https://reference.wolfram.com/language/guide/InterpretingStrings.en.md): The Wolfram Language provides a uniform mechanism for specifying how inputs of different types should be interpreted as Wolfram Language or WDF expressions, for example in forms or APIs. The interpretations can involve either structural or semantic conversions, and the specification of the interpretation can be used to generate interface elements such as input fields for requesting input suitable for interpretation in a form. - [Linguistic Data](https://reference.wolfram.com/language/guide/LinguisticData.en.md): The Wolfram Language has not only convenient built-in multilingual dictionaries, but also built-in information on word meaning, structure, and usage, as well as the relationship between words. Together with the Wolfram Language's tightly integrated string manipulation functions, visualization, and data import and export, this provides a uniquely powerful platform for natural language computing. - [Text Search](https://reference.wolfram.com/language/guide/TextSearch.en.md): The Wolfram Language provides integrated, highly efficient capabilities for searching large volumes of text. In typical usage, an index is built for a collection of documents, then repeated searches are performed with this index. The index can be incrementally updated whenever needed. - [WDF (Wolfram Data Framework)](https://reference.wolfram.com/language/guide/WDFWolframDataFramework.en.md): WDF makes use of the Wolfram Language and the Wolfram Knowledgebase to provide a standardized computable description of real-world constructs and data. - [Wolfram Data Repository](https://reference.wolfram.com/language/guide/WolframDataRepository.en.md): The Wolfram Data Repository is a curated cloud repository of computable data resources, all set up to be instantly usable in the Wolfram Language. The Data Repository includes a growing number of numerical, textual, image, and other data resources from a very wide range of application areas. The Wolfram Language supports creation of private data resources, which can then be submitted for inclusion in the public Wolfram Data Repository. - [Wolfram|Alpha Integration](https://reference.wolfram.com/language/guide/WolframAlphaIntegration.en.md): The Wolfram Language has integrated interactive and programmatic access to the full power of the Wolfram|Alpha computational knowledge engine, using it to allow free-form linguistic input of computations and programs, as well as extensive data and computation capabilities that rely on the Wolfram|Alpha knowledgebase and curated data. ## Time-Related Computation - [Dates & Times](https://reference.wolfram.com/language/guide/DateAndTime.en.md): The Wolfram Language has a highly flexible system for representing dates and times symbolically and performing computations on them. It can also input and output dates and times in a wide range of formats, as well as handle all standard calendars. - [Astronomical Computation](https://reference.wolfram.com/language/guide/AstronomicalComputationAndData.en.md): The Wolfram Language provides seamless access to the curated and continuously updated Wolfram Knowledgebase used in Wolfram|Alpha--which includes a wide range of types of data for astronomical science. Free-form linguistics provide a convenient mechanism for accessing all available data; more common categories also have specific associated Wolfram Language functions. - [Time Series](https://reference.wolfram.com/language/guide/TimeSeries.en.md): Time series occur whenever you observe or compute something that changes over time, including natural time series (temperature, windspeed, pressure,...), social time series (stock price, unemployment, GDP, ...), technological time series (velocity, voltage,...) and medical time series (heart rate, blood pressure, ECG, ...). Time series provide the data model that makes it easy to clean, process, visualize and model time series data. - [Signal Processing](https://reference.wolfram.com/language/guide/SignalProcessing.en.md): Signals are sequences over time and occur in many different domains, including technical (speed, acceleration, temperature, ...), medical (ECG, EEG, blood pressure, ...) and financial (stock prices, commodity prices, exchange rates, ...). Signal processing involves transforming and filtering signals to improve quality and extract information, as well as detecting events. The Wolfram Language has powerful signal processing capabilities, including digital and analog filter design, filtering, and signal analysis using the state-of-the-art algebraic and numerical methods that can be applied to any data. ## Scientific and Medical Data & Computation - [Physics & Chemistry](https://reference.wolfram.com/language/guide/PhysicsAndChemistryDataAndComputation.en.md): The Wolfram Language provides seamless access to the curated and continuously updated Wolfram Knowledgebase--which includes a wide range of types of data for physics and chemistry. Free-form linguistics provide a convenient mechanism for accessing entities and data. The Wolfram Language also has built-in support for many common types of computations in physics and chemistry. - [Astronomical Science](https://reference.wolfram.com/language/guide/AstronomicalComputationAndData.en.md): The Wolfram Language provides seamless access to the curated and continuously updated Wolfram Knowledgebase used in Wolfram|Alpha--which includes a wide range of types of data for astronomical science. Free-form linguistics provide a convenient mechanism for accessing all available data; more common categories also have specific associated Wolfram Language functions. - [Earth Sciences](https://reference.wolfram.com/language/guide/EarthSciencesDataAndComputation.en.md): The Wolfram Language provides seamless access to the curated and continuously updated Wolfram Knowledgebase used in Wolfram|Alpha--which includes a wide range of types of data for the earth sciences. Free-form linguistics provide a convenient mechanism for accessing all available data; more common categories also have specific associated Wolfram Language functions. - [Life Sciences & Medicine](https://reference.wolfram.com/language/guide/LifeSciencesAndMedicineDataAndComputation.en.md): The Wolfram Language provides immediate access to extensive life science data, as well as providing powerful tools for bioinformatics and biostatistics. - [Molecular Structure & Computation](https://reference.wolfram.com/language/guide/MolecularStructureAndComputation.en.md): The Molecule is a symbolic representation of a chemical species and is a fully computable first-class member of the Wolfram Language. More than 20 new functions allow users to create, analyze and modify chemical species. A wide range of computed properties such as stereochemistry, symmetry elements, molecular graphs and molecular mechanics energies facilitate problem solving across all chemical disciplines. Built-in support for organic and inorganic nomenclature allows fast creation of molecule objects from chemical names. Molecule folds seamlessly into existing functionality, e.g. Graph, to enable novel computations. - [Scientific Models](https://reference.wolfram.com/language/guide/ScientificModels.en.md): A major feature of the Wolfram Language is its deep coverage of all common approaches to scientific models and modeling. The Wolfram Language allows models to be represented, manipulated, solved, simulated, and visualized. It also includes extensive data on specific named models. - [Computational Systems & NKS](https://reference.wolfram.com/language/guide/ComputationalSystemsAndDiscovery.en.md): The Wolfram System is the tool that has made possible Stephen Wolfram's exploration of the computational universe, and the emerging field of Wolfram Science (NKS). Whether for modeling, algorithm discovery, or basic NKS, the Wolfram Language has immediate built-in capabilities for the systematic study of a broad range of computational systems. - [Scientific Data Analysis](https://reference.wolfram.com/language/guide/ScientificDataAnalysis.en.md): The Wolfram Language has unparalleled scientific data analysis capabilities, building on its strong base of algorithms, ability to represent and manipulate models symbolically, and integrated representation of real-world quantities and entities. - [Units & Measures](https://reference.wolfram.com/language/guide/Units.en.md): The Wolfram Language allows you to do arithmetic not only with symbols and numbers, but also with units. The Wolfram Language's integration with Wolfram|Alpha allows for a sophisticated unit system that combines the flexibility of free-form linguistics with the computational power of numerical and symbolic algorithms. The units framework integrates seamlessly with visualization, numeric and algebraic computation functions. It also supports dimensional analysis, as well as purely symbolic operations on quantities. - [Connected Devices](https://reference.wolfram.com/language/guide/UsingConnectedDevices.en.md): The Wolfram Language provides a streamlined framework for connecting to external devices. Many classes of devices listed in the Wolfram Connected Devices Project are immediately supported within the Wolfram Language. ## Engineering Data & Computation - [Engineering Data](https://reference.wolfram.com/language/guide/EngineeringData.en.md): The Wolfram Language provides seamless access to the curated and continuously updated Wolfram Knowledgebase, which includes a wide range of types of engineering data. Free-form linguistics provide a convenient mechanism for accessing all available data; more common categories also have specific associated Wolfram Language functions. - [Signal Processing](https://reference.wolfram.com/language/guide/SignalProcessing.en.md): Signals are sequences over time and occur in many different domains, including technical (speed, acceleration, temperature, ...), medical (ECG, EEG, blood pressure, ...) and financial (stock prices, commodity prices, exchange rates, ...). Signal processing involves transforming and filtering signals to improve quality and extract information, as well as detecting events. The Wolfram Language has powerful signal processing capabilities, including digital and analog filter design, filtering, and signal analysis using the state-of-the-art algebraic and numerical methods that can be applied to any data. - [Image Processing](https://reference.wolfram.com/language/guide/ImageProcessing.en.md): The Wolfram Language provides broad and deep built-in support for both programmatic and interactive modern industrial-strength image processing--fully integrated with the Wolfram Language's powerful mathematical and algorithmic capabilities. The Wolfram Language's unique symbolic architecture and notebook paradigm allow images in visual form to be included and manipulated directly, both interactively and in programs. - [Systems Modeling](https://reference.wolfram.com/language/guide/SystemModelAnalyticsDesign.en.md): Model analytics creates insight by analyzing simulation data, using everything from general visualization and summarization to specialized and dedicated analysis functionality. The Wolfram Language makes custom analysis for specific domains or use cases easy. Model design attempts to change or improve system behavior by modifying or optimizing system inputs, parameters or other properties of the system. Advanced simulation control in combination with powerful Wolfram Language features provides a rich environment for such optimizations and design. - [Control Systems](https://reference.wolfram.com/language/guide/ControlSystems.en.md): The Wolfram Language provides an extensive suite of built-in functionality to carry out analysis, design, and simulation of continuous- and discrete-time control systems using both classical and modern techniques. Building on the Wolfram Language's proven symbolic architecture, state-space and transfer function models can be represented in symbolic as well as numeric form, yielding closed-form symbolic solutions where traditional tools only provide numerical answers. All built-in numerical solvers use the Wolfram Language's hybrid symbolic-numeric approach and highly efficient numerical algorithms. - [Reliability Analysis](https://reference.wolfram.com/language/guide/Reliability.en.md): Reliability of a component is the probability that it will function for a specified period of time. This is modeled as a lifetime distribution. A system built from independent components will itself have a lifetime distribution that can be computed from component lifetime distributions and system structure (parallel, series, ...). Reliability is often used for safety reasons (nuclear, offshore, aerospace, ...) as well as for economic reasons (warranties, customer satisfaction, ...). The Wolfram Language provides a full suite of reliability functionality, including parametric and nonparametric lifetime distributions, support for estimating distributions from uncensored and censored data, computing lifetime distributions for systems (reliability block diagram, fault trees, and standby configurations), and component importance measures allowing you to improve component reliabilities that most affect the reliability of the whole system. - [Units & Measures](https://reference.wolfram.com/language/guide/Units.en.md): The Wolfram Language allows you to do arithmetic not only with symbols and numbers, but also with units. The Wolfram Language's integration with Wolfram|Alpha allows for a sophisticated unit system that combines the flexibility of free-form linguistics with the computational power of numerical and symbolic algorithms. The units framework integrates seamlessly with visualization, numeric and algebraic computation functions. It also supports dimensional analysis, as well as purely symbolic operations on quantities. - [Connected Devices](https://reference.wolfram.com/language/guide/UsingConnectedDevices.en.md): The Wolfram Language provides a streamlined framework for connecting to external devices. Many classes of devices listed in the Wolfram Connected Devices Project are immediately supported within the Wolfram Language. ## Financial Data & Computation - [Financial Data](https://reference.wolfram.com/language/guide/FinancialAndEconomicData.en.md): The Wolfram Language has immediate built-in access to current and historical financial and economic data. - [Financial Computations](https://reference.wolfram.com/language/guide/Finance.en.md): The Wolfram Language has fully integrated support for many of the tools used in classical and modern finance. These capabilities include financial instrument valuation, advanced time value of money computations, and advanced financial charting with a library of technical indicators. The Wolfram Language also provides immediate access to a large array of financial and economic data, and contains financial import and export tools for working with external data. - [Financial Visualization](https://reference.wolfram.com/language/guide/FinancialVisualization.en.md): Financial visualization is used to understand how the price of stocks, commodities, currencies, etc. changes over time. Candlesticks and related charts use stylized glyphs to represent multiple prices, such as open, high, low, and close prices. Trading charts add additional indicators to highlight different price signals, such as volume, trends, inertia, momentum, etc. Renko and related charts instead focus on the change in prices and compress time when there is little change. Wolfram Language financial visualization functions automatically use built-in financial data or can use price data from other sources. Charts provide a high level of automation for aesthetics and financial computations, as well as detailed options for tuning and extensibility. The Wolfram Language provides a built-in library of around 100 financial indicators with automatic or specified settings and aesthetics to combine with the financial visualizations. - [Blockchains & Cryptocurrency](https://reference.wolfram.com/language/guide/Blockchain.en.md): The Wolfram Language has built-in capabilities for interacting with blockchains. It can both retrieve detailed information from Bitcoin, Ethereum and other blockchains and construct and submit transactions to blockchains. Wolfram maintains a MultiChain instance in the Wolfram Cloud that allows immediate blockchain storage and retrieval of arbitrary Wolfram Language expressions. - [Actuarial Computation](https://reference.wolfram.com/language/guide/ActuarialComputation.en.md): Actuarial computation deals with quantifying and redistributing risk in insurance and finance. Risks refer to financial losses and may relate to health, cars, life, and financial investments, etc. Risks are redistributed by grouping many individuals and analyzing the whole group to determine premiums and risk probabilities, etc. The Wolfram Language provides extensive support for models, data, and computation related to finance, probability, and statistics. In life insurance, important aspects include time value of money with either deterministic or stochastic models of lifetimes. In non-life insurance, important parts include the frequency and size of claims for a group, either short term or long term. - [Socioeconomic Data](https://reference.wolfram.com/language/guide/SocioeconomicAndDemographicData.en.md): The Wolfram Language provides seamless access to the curated and continuously updated Wolfram Knowledgebase, which includes a wide range of types of socioeconomic and demographic data. Free-form linguistics provides a convenient mechanism for accessing all available data; more common categories also have specific associated Wolfram Language functions. ## Social, Cultural & Linguistic Data - [Socioeconomic & Demographic Data](https://reference.wolfram.com/language/guide/SocioeconomicAndDemographicData.en.md): The Wolfram Language provides seamless access to the curated and continuously updated Wolfram Knowledgebase, which includes a wide range of types of socioeconomic and demographic data. Free-form linguistics provides a convenient mechanism for accessing all available data; more common categories also have specific associated Wolfram Language functions. - [Transportation Data](https://reference.wolfram.com/language/guide/TransportationData.en.md): The Wolfram Language has built-in access to extensive computable data on many forms of transportation. Free-form linguistics provide a convenient mechanism for accessing all available data; more common categories also have specific associated Wolfram Language functions. - [Cultural Data](https://reference.wolfram.com/language/guide/CulturalData.en.md): The Wolfram Language has built-in access to extensive cultural data in computable form. Free-form linguistics provide a convenient mechanism for accessing all available data; more common categories also have specific associated Wolfram Language functions. - [People & History](https://reference.wolfram.com/language/guide/PeopleAndHistory.en.md): The Wolfram Language has built-in access to an extensive collection of continually updated data on people and many kinds of history. Free-form linguistics provide a convenient mechanism for accessing all available data; more common categories also have specific associated Wolfram Language functions. - [Linguistic Data](https://reference.wolfram.com/language/guide/LinguisticData.en.md): The Wolfram Language has not only convenient built-in multilingual dictionaries, but also built-in information on word meaning, structure, and usage, as well as the relationship between words. Together with the Wolfram Language's tightly integrated string manipulation functions, visualization, and data import and export, this provides a uniquely powerful platform for natural language computing. ## Notebook Documents & Presentation - [Notebook Documents](https://reference.wolfram.com/language/guide/NotebookBasics.en.md): From simple calculations to full publishable documents and sophisticated dynamic interfaces, everything you can do with the Wolfram System's standard interactive interface is done in a notebook. Carefully designed to leverage familiar word-processing metaphors, Wolfram System notebooks are uniquely powerful computational documents that support live computation, arbitrary dynamic interfaces, full typeset input, image input, automatic code annotation, a complete high-level programmatic interface, and in all, thousands of carefully organized functions and options. - [Formatting & Styling](https://reference.wolfram.com/language/guide/NotebookFormattingAndStyling.en.md): Wolfram Language notebooks include all the usual features of a top-quality word-processing system, plus many additional special capabilities. In all, there are over a thousand formatting and styling options, all accessible both from menus and at a programmatic level. Wolfram Language notebooks have an underlying symbolic structure that allows full markup, cascading stylesheets, and the ability to immediately restyle a document. Notebooks can be optimized not only for interactive use, but also for export to web and print media. - [Layout & Tables](https://reference.wolfram.com/language/guide/LayoutAndTables.en.md): Because of its unified symbolic architecture, the Wolfram Language provides powerful capabilities for creating layouts, both interactively and programmatically, and containing arbitrary expressions--not only text and formulas, but also graphics and dynamic elements. - [Dynamic Presentations](https://reference.wolfram.com/language/guide/PresentationsWithTheWolframSystem.en.md): The Wolfram System's unified computation and dynamic document architecture make possible a new level of interactive presentation--notably allowing finished slides on which full interactive input and dynamic computation can still be done. The Wolfram Language's cell-structured documents also conveniently allow calculations leading up to graphics or other elements to be maintained in the underlying document, but hidden for presentation. - [Mathematical Typesetting](https://reference.wolfram.com/language/guide/MathematicalTypesetting.en.md): Developed at Wolfram Research over nearly 20 years, the Wolfram Language has by far the world's most sophisticated and convenient mathematical typesetting technology. Generalizing the concept of a computer language to allow 2D input, the Wolfram Language allows both interactive and programmatic entry of arbitrarily complex typeset expressions, with publication-quality layout continuously maintained in real time. - [Special Characters](https://reference.wolfram.com/language/guide/SpecialCharacters.en.md): The Wolfram Language not only has systemwide support for arbitrary Unicode characters, but also includes nearly a thousand carefully designed characters for mathematical notation and technical presentation--all fully integrated into the Wolfram Language's input, output, and graphics. - [Document Generation](https://reference.wolfram.com/language/guide/DocumentGeneration.en.md): The Wolfram Language's symbolic document paradigm makes it uniquely easy to create complex structured documents programmatically, including both graphical elements and dynamic interactivity. - [Notebook Programming](https://reference.wolfram.com/language/guide/LowLevelNotebookProgramming.en.md): In the Wolfram Language's unified symbolic architecture, every Wolfram Language notebook you see is represented as a symbolic expression that can be manipulated and controlled programmatically using the Wolfram Language. The Wolfram Language's low-level notebook programming functions give direct incremental access to notebook expressions, allowing you successively to perform arbitrary operations on the selection in any notebook. - [Web Import & Export](https://reference.wolfram.com/language/guide/WebFormats.en.md): The Wolfram Language can automatically create sophisticated web content, with cascading styles, templating, and many options. Its symbolic architecture allows arbitrary web structures to be created directly using programmatic tools. The Wolfram Language can also import web content, converting to symbolic form or extracting data that can immediately be processed. - [Accessibility](https://reference.wolfram.com/language/guide/Accessibility.en.md): The Wolfram Language not only fits into standard accessibility frameworks but also provides its own highly flexible interface accessibility options. ## User Interface Construction - [Interactive Manipulation](https://reference.wolfram.com/language/guide/InteractiveManipulation.en.md): The single function Manipulate gives immediate access to a huge range of powerful interactive capabilities. For any expression with symbolic parameters, Manipulate automatically creates an interface for manipulating the parameters. Manipulate supports not only mouse and keyboard manipulation, but also gamepads and other devices. - [Viewers & Annotation](https://reference.wolfram.com/language/guide/ViewersAndAnnotation.en.md): The Wolfram Language's dynamic interactivity system makes it easy to view and annotate any object in a dynamic way. Building on the Wolfram Language's symbolic programming architecture, constructs can be nested and combined in arbitrary ways, and both their content and control can be fully dynamic and programmatic. - [Control Objects](https://reference.wolfram.com/language/guide/ControlObjects.en.md): The Wolfram Language provides a full range of control objects, all specified in convenient symbolic form. Manipulate uses many of these objects automatically; you can also use them directly as part of generalized input or in building your own dynamic interfaces. - [Form Building](https://reference.wolfram.com/language/guide/CreatingFormsAndApps.en.md): The Wolfram Language has sophisticated capabilities for setting up forms to run either within the native notebook interface, on the web, or in mobile apps accessed from the Wolfram Cloud app. - [Generalized Input](https://reference.wolfram.com/language/guide/GeneralizedInput.en.md): The Wolfram Language's unique structure allows a generalized notion of input, in which not only ordinary text, but also typeset structures, diagrams, graphics, control objects, and even complete user interfaces can be entered and immediately return values that have been associated with them. - [Dynamic Interactivity Language](https://reference.wolfram.com/language/guide/DynamicInteractivityLanguage.en.md): Fundamental to the Wolfram Language's dynamic interactivity capabilities is a new form of symbolic dynamic language. With a very small number of highly powerful primitives that mix freely with other language constructs, you can write a program in a direct symbolic style, and the Wolfram Language will automatically track dependencies to make controls and output of any kind update dynamically. - [Custom Interface Construction](https://reference.wolfram.com/language/guide/CustomInterfaceConstruction.en.md): For many applications, high-level constructs like Manipulate and TabView will immediately give you the dynamic interactivity you need. The Wolfram Language also allows you to create your own sophisticated custom interfaces, using its uniquely straightforward symbolic interface-building technology. - [Questions & Assessment](https://reference.wolfram.com/language/guide/QuestionsAndAssessment.en.md): The Wolfram Language has built-in course tools for writing and assessing questions for course material and other purposes. Questions support a wide range of interfaces, as well as fully customizable automated assessment. Question notebooks provide a notebook interface for writing and distributing quizzes and related question-based documents. ## System Operation & Setup - [Interactive Sessions](https://reference.wolfram.com/language/guide/WolframSystemSessions.en.md): The Wolfram System provides a uniquely powerful interactive environment for building up arbitrarily complex computations, under convenient interactive or programmatic control. - [Notebook Interface](https://reference.wolfram.com/language/guide/NotebookBasics.en.md): From simple calculations to full publishable documents and sophisticated dynamic interfaces, everything you can do with the Wolfram System's standard interactive interface is done in a notebook. Carefully designed to leverage familiar word-processing metaphors, Wolfram System notebooks are uniquely powerful computational documents that support live computation, arbitrary dynamic interfaces, full typeset input, image input, automatic code annotation, a complete high-level programmatic interface, and in all, thousands of carefully organized functions and options. - [Standalone Kernels](https://reference.wolfram.com/language/guide/StandaloneWolframLanguageKernels.en.md): The Wolfram Language and its computation capabilities can be accessed not only through its rich interactive notebook interface, but also directly through a command-line interface--allowing the Wolfram Language to be used in large-scale batch mode or as the world's most powerful scripting language, fully integrated into any computational environment. - [Background & Scheduled Tasks](https://reference.wolfram.com/language/guide/BackgroundAndScheduledTasks.en.md): The Wolfram Language provides frameworks for performing computations in the background, either immediately or on a predetermined schedule. These frameworks operate both locally and in the cloud, and can spawn additional processes or can operate preemptively in a single process. - [GPU Computing](https://reference.wolfram.com/language/guide/GPUComputing.en.md): GPU computing has become ubiquitous in many areas, ranging from scientific computing and machine learning to games and many more. GPUs provide a parallel processing model that makes it possible to accelerate computations significantly and to handle large datasets efficiently, leading to faster and more powerful processing capabilities. With its GPU-aware array framework, high-level functions and powerful compiler, the Wolfram Language offers state-of-the-art functionality designed to leverage the capabilities of GPUs. Immediately access and manipulate data directly on GPUs and boost productivity using high-level linear algebra, statistics and mathematical functions without sacrificing performance. - [Parallel Computing](https://reference.wolfram.com/language/guide/ParallelComputing.en.md): The Wolfram Language provides a uniquely integrated and automated environment for parallel computing. With zero configuration, full interactivity, and seamless local and network operation, the symbolic character of the Wolfram Language allows immediate support of a variety of existing and new parallel programming paradigms and data-sharing models. - [Wolfram|Alpha Integration](https://reference.wolfram.com/language/guide/WolframAlphaIntegration.en.md): The Wolfram Language has integrated interactive and programmatic access to the full power of the Wolfram|Alpha computational knowledge engine, using it to allow free-form linguistic input of computations and programs, as well as extensive data and computation capabilities that rely on the Wolfram|Alpha knowledgebase and curated data. - [Paclet System](https://reference.wolfram.com/language/guide/Paclets.en.md): Paclets are a way to bundle arbitrary Wolfram Language functionality in a form that can be downloaded from a server and installed in any Wolfram Language system. A paclet can contain a large variety of elements, including new Wolfram Language functions, LibraryLink modules, stylesheets, palettes, settings for the Wolfram System, documentation notebooks or data files. - [Persistent Storage](https://reference.wolfram.com/language/guide/PersistentStorage.en.md): The Wolfram Language provides streamlined mechanisms for persistent storage between sessions, both locally and in the cloud. - [System Setup](https://reference.wolfram.com/language/guide/WolframSystemSetup.en.md): The Wolfram System allows convenient discovery and customization of all aspects of its system setup. ## External Interfaces & Connections - [Files](https://reference.wolfram.com/language/guide/FileOperations.en.md): In addition to a rich set of standard file operations, the Wolfram Language's unified symbolic architecture makes it easy to apply algorithmic approaches and efficient higher-level programming to many file and system administration tasks. - [Web](https://reference.wolfram.com/language/guide/WebOperations.en.md): The Wolfram Language provides many mechanisms for interfacing with the web--from exporting graphics and structured interactive documents to interacting with web APIs, importing web data, setting up cloud-based web services, and manipulating URLs and other web constructs. - [Programs](https://reference.wolfram.com/language/guide/CallingExternalPrograms.en.md): The Wolfram Language immediately allows you to call both standalone programs and individual functions or methods within running programs. The Wolfram Language's architecture allows external functionality to be represented in a symbolic form that can immediately be manipulated within the Wolfram Language--and that often makes access to external functionality from within the Wolfram Language more convenient even than from its own native environment. - [Languages](https://reference.wolfram.com/language/guide/ExternalLanguageInterfaces.en.md): The Wolfram Language has built-in support for common external languages, as well as flexible tools for creating interfaces to any external language or program. - [Templating](https://reference.wolfram.com/language/guide/WorkingWithTemplates.en.md): The Wolfram Language has a powerful symbolic templating framework that can be used with strings, files, XML-like structures, notebooks, and other constructs. - [Connected Devices](https://reference.wolfram.com/language/guide/UsingConnectedDevices.en.md): The Wolfram Language provides a streamlined framework for connecting to external devices. Many classes of devices listed in the Wolfram Connected Devices Project are immediately supported within the Wolfram Language. - [Services & APIs](https://reference.wolfram.com/language/guide/AccessingExternalServicesAndAPIs.en.md): The Wolfram Language provides a sophisticated framework for accessing a wide variety of external services and APIs. The framework manages authentication and data exchanges with the service. - [Mail, Messages, etc.](https://reference.wolfram.com/language/guide/MailMessagesEtc.en.md): The Wolfram Language provides built-in access to email and a wide variety of external message systems. - [Channel Communication](https://reference.wolfram.com/language/guide/Channel-BasedCommunication.en.md): The Wolfram Language supports efficient publish-subscribe communication, brokered either in the Wolfram Cloud (through channelbroker-mqtt.wolframcloud.com) or elsewhere. Channels can be used for asynchronous communication, either between Wolfram Language sessions on the cloud or desktop, or with external systems (with data provided in a JSON format). - [Network Programming](https://reference.wolfram.com/language/guide/NetworkProgramming.en.md): The Wolfram Language includes built-in network programming, allowing uniform convenient access to TCP, ZMQ and web socket functionality on all platforms, as well as a variety of functions for network connectivity and name resolution. - [Internet & Computer Systems Data](https://reference.wolfram.com/language/guide/InternetAndWebRelatedData.en.md): The Wolfram Language has curated and continuously updated data both on the internet and on features of computer systems. It is also able to retrieve or deduce information about local and remote computer systems being used in computations. - [Databases](https://reference.wolfram.com/language/guide/DatabaseConnectivity.en.md): The Wolfram Language includes powerful capabilities for working with many types of external databases, including relational (SQL), object store (NoSQL) and triple store (RDF/SPARQL). Wolfram Language entity stores are also closely integrated with relational databases, allowing many analysis operations specified in the Wolfram Language to be automatically executed in external relational databases. - [Data Import & Export](https://reference.wolfram.com/language/guide/ImportingAndExporting.en.md): The Wolfram Language automatically handles hundreds of data formats and subformats--all coherently integrated through the Wolfram Language's uniform use of symbolic expressions. For each particular format, the correspondence between representations inside and outside the Wolfram Language can be specified at any level of detail using the Wolfram Language's general data elements mechanism. - [Wolfram Data Drop](https://reference.wolfram.com/language/guide/UsingTheWolframDataDrop.en.md): The Wolfram Data Drop is a general repository for data that is incrementally added, typically from external sources, through APIs as well as web, email, and other interfaces. - [Wolfram Data Repository](https://reference.wolfram.com/language/guide/WolframDataRepository.en.md): The Wolfram Data Repository is a curated cloud repository of computable data resources, all set up to be instantly usable in the Wolfram Language. The Data Repository includes a growing number of numerical, textual, image, and other data resources from a very wide range of application areas. The Wolfram Language supports creation of private data resources, which can then be submitted for inclusion in the public Wolfram Data Repository. - [Blockchains](https://reference.wolfram.com/language/guide/Blockchain.en.md): The Wolfram Language has built-in capabilities for interacting with blockchains. It can both retrieve detailed information from Bitcoin, Ethereum and other blockchains and construct and submit transactions to blockchains. Wolfram maintains a MultiChain instance in the Wolfram Cloud that allows immediate blockchain storage and retrieval of arbitrary Wolfram Language expressions. - [Cryptography](https://reference.wolfram.com/language/guide/Cryptography.en.md): The Wolfram Language includes built-in functions for both symmetric (private-key) and asymmetric (public-key) cryptography, including RSA, elliptic curve and other methods. - [WSTP (Wolfram Symbolic Transfer Protocol)](https://reference.wolfram.com/language/guide/WSTPAPI.en.md): Extensively used within the Wolfram System itself, the Wolfram Symbolic Transfer Protocol (WSTP) is the Wolfram System's unique high-level symbolic interface standard for interprogram communication. With convenient bindings for a variety of languages, WSTP immediately allows arbitrary symbolic objects--representing data, programs, or any other construct--to be efficiently exchanged between programs, on one computer or across a heterogeneous network. ## Cloud & Deployment - [Cloud Functions](https://reference.wolfram.com/language/guide/CloudFunctionsAndDeployment.en.md): The Wolfram Language is deeply integrated with the cloud, providing seamless persistent storage of code and data, cloud computation, and instant external deployment through active documents, APIs, forms, apps, etc. - [Web Operations](https://reference.wolfram.com/language/guide/WebOperations.en.md): The Wolfram Language provides many mechanisms for interfacing with the web--from exporting graphics and structured interactive documents to interacting with web APIs, importing web data, setting up cloud-based web services, and manipulating URLs and other web constructs. - [Instant APIs](https://reference.wolfram.com/language/guide/CreatingAnInstantAPI.en.md): The Wolfram Language has built-in capabilities for creating and deploying APIs on the web and elsewhere. - [Form & App Creation](https://reference.wolfram.com/language/guide/CreatingFormsAndApps.en.md): The Wolfram Language has sophisticated capabilities for setting up forms to run either within the native notebook interface, on the web, or in mobile apps accessed from the Wolfram Cloud app. - [Sharing & Embedding](https://reference.wolfram.com/language/guide/SharingAndEmbeddingContent.en.md): The Wolfram Language provides flexible mechanisms for sharing and embedding content in many environments, both in the cloud and in specific systems. - [Wolfram Data Repository](https://reference.wolfram.com/language/guide/WolframDataRepository.en.md): The Wolfram Data Repository is a curated cloud repository of computable data resources, all set up to be instantly usable in the Wolfram Language. The Data Repository includes a growing number of numerical, textual, image, and other data resources from a very wide range of application areas. The Wolfram Language supports creation of private data resources, which can then be submitted for inclusion in the public Wolfram Data Repository. - [Scheduled Tasks](https://reference.wolfram.com/language/guide/BackgroundAndScheduledTasks.en.md): The Wolfram Language provides frameworks for performing computations in the background, either immediately or on a predetermined schedule. These frameworks operate both locally and in the cloud, and can spawn additional processes or can operate preemptively in a single process. ## Workflows - [Working in Notebooks](https://reference.wolfram.com/language/workflowguide/WorkingInNotebooks.en.md): Getting Started with Wolfram Notebooks . Entering & Editing Text . Entering & Editing Math . Styling & Formatting . Cells & Grouping . Graphics & Images . Active Elements & Controls . Computations & Code . Notebook Management . Special Types of Notebooks - [Creating Documents & Presentations](https://reference.wolfram.com/language/workflowguide/CreatingDocumentsAndPresentations.en.md): Preparing and Giving Presentations . Printing & Publishing . Reports & Templated Notebooks . Special Types of Notebooks . Exporting Notebooks . Programmatic Notebook Operations - [Creating & Organizing Interfaces](https://reference.wolfram.com/language/workflowguide/CreatingAndOrganizingInterfaces.en.md): Notebook Interfaces . Web-Deployed Interfaces . Natural-Language Interfaces - [Using the Wolfram Language](https://reference.wolfram.com/language/workflowguide/UsingTheWolframLanguage.en.md): Symbols and Functions . Working with Expressions . Natural-Language Operations . Working with Files . Formatting Output . Software Development . Errors and Debugging . Initialization & Termination . Managing Kernels . Managing Computational Resources . Using the Wolfram Language on the Command Line - [Working with Data](https://reference.wolfram.com/language/workflowguide/WorkingWithData.en.md): Importing and Analyzing Data . Working with Datasets . Using Data Repositories . Machine Learning . Out-of-Core Processing . Report Generation - [Working with Graphics, Images & Sounds](https://reference.wolfram.com/language/workflowguide/WorkingWithGraphicsImagesAndSounds.en.md): Video Processing . Creating Graphics & Images . Customizing Graphics & Images . Sizing & Positioning Graphics . Assembling Graphics & Images . Extracting Data from Graphics & Images . Preparing Publications . Sound . 3D Printing - [Working in the Cloud](https://reference.wolfram.com/language/workflowguide/WorkingInTheCloud.en.md): Working with Cloud Notebooks . Storing Data in the Cloud . Computing in the Cloud . Controlling Access . Managing Your Cloud Account . Creating Online Forms . Deploying and Using Web APIs . Scheduled Tasks - [Deploying to Web & Mobile](https://reference.wolfram.com/language/workflowguide/DeployingToWebAndMobile.en.md): Publishing to the Web . Creating Webpages . Creating Online Forms . Deploying and Using Web APIs . Responding to Email . Administering Deployments - [Repositories, Sharing & Publishing](https://reference.wolfram.com/language/workflowguide/RepositoriesSharingAndPublishing.en.md): Using Data Repositories . Email & Social Media . Publishing - [Interfacing with Other Systems](https://reference.wolfram.com/language/workflowguide/InterfacingWithOtherSystems.en.md): Connecting to External Software . Connecting to External Devices . Sending Email . Using the Wolfram Language on the Command Line . Using the Wolfram Client Library for Python . Connecting to Excel - [Setup & Administration](https://reference.wolfram.com/language/workflowguide/SetupAndAdministration.en.md): Installation & Activation . Initialization & Persistence . Managing Computational Resources . Connecting to External Software . Configuring Internet Access . Notebook Configuration . Wolfram Enterprise Private Cloud - [Specific Application Areas](https://reference.wolfram.com/language/workflowguide/SpecificApplicationAreas.en.md): Machine Learning . Blockchains and Cryptography . Remote Batch Computation . Connecting to External Software --- ## Resources - [Fast Introduction for Programmers](https://www.wolfram.com/language/fast-introduction-for-programmers/en/): Get started and up to speed on the basic principles and concepts of programming in the Wolfram Language. Introductory tutorial for programmers. - [Fast Introduction for Math Students](https://www.wolfram.com/language/fast-introduction-for-math-students/en/): Learn how to solve math problems with Mathematica & the Wolfram Language. From basic math to integral calculus. Do calculations, plots, presentations. - [Intro Book & Course](https://www.wolfram.com/language/elementary-introduction/): Start using the Wolfram Language. Stephen Wolfram's book introduces the basics with a series of easy-to-follow examples, exercises, QA, tech notes. - [Repositories & Archives](https://resources.wolframcloud.com/): Freely access thousands of computable resources from Wolfram - curated datasets, neural network models, standalone Wolfram Language functions, computational notebooks, interactive Demonstrations. - [Developer Resources](https://www.wolfram.com/developer/resources/): Resources to create and deploy software systems & applications using Wolfram's computational intelligence system. Development environments, deployment channels, open-code repositories, developer communities. - [Wolfram Language Products](https://www.wolfram.com/products/): Details about Wolfram technology products including Wolfram|One, Mathematica, Notebook Assistant, Compute Services, Finance Platform, System Modeler, Wolfram|Alpha, Wolfram Engine, enterprise solutions, apps, consulting, training, repositories and archives, connectors, libraries and middleware. - [Wolfram U](https://www.wolfram.com/wolfram-u/): Free, open, interactive courses, learning events, educational resources. Covers data science, machine learning, programming, graphics, Wolfram Language, finance, modeling, plus additional computational topics. Earn certifications. - [New Features](https://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn150.en.md): A list of key new and improved features since Version 14.3, including features experimental in Version 15.0. - [Index of Functions](https://reference.wolfram.com/language/guide/AlphabeticalListing.en.md): The Wolfram Language has over 7000 built-in functions and other objects, all based on a single unified framework, and all carefully designed to work together, both in simple interactive applications and programs of any complexity. ## Full Documentation Index - [Full Documentation](https://reference.wolfram.com/llms-full.txt): Complete index of all Wolfram Language documentation pages including Reference Pages, Guide Pages, Tutorials, Workflow Guides, Workflows, Examples, and HowTos. Contains links to over 17,000 documentation files covering the full Wolfram Language function set.