(Ebook) Learning Julia Build high performance applications for scientific computing 1st Edition by Anshul Joshi, Rahul Lakhanpal ISBN 9781785883279 1785883275
(Ebook) Learning Julia Build high performance applications for scientific computing 1st Edition by Anshul Joshi, Rahul Lakhanpal - Ebook PDF Instant Download/Delivery: 9781785883279, 1785883275
Full download (Ebook) Learning Julia Build high performance applications for scientific computing 1st Edition after payment

Product details:
ISBN 10: 1785883275
ISBN 13: 9781785883279
Author: Anshul Joshi, Rahul Lakhanpal
Julia is a highly appropriate language for scientific computing, but it comes with all the required capabilities of a general-purpose language. It allows us to achieve C/Fortran-like performance while maintaining the concise syntax of a scripting language such as Python. It is perfect for building high-performance and concurrent applications. From the basics of its syntax to learning built-in object types, this book covers it all.
This book shows you how to write effective functions, reduce code redundancies, and improve code reuse. It will be helpful for new programmers who are starting out with Julia to explore its wide and ever-growing package ecosystem and also for experienced developers/statisticians/data scientists who want to add Julia to their skill-set.
The book presents the fundamentals of programming in Julia and in-depth informative examples, using a step-by-step approach. You will be taken through concepts and examples such as doing simple mathematical operations, creating loops, metaprogramming, functions, collections, multiple dispatch, and so on.
By the end of the book, you will be able to apply your skills in Julia to create and explore applications of any domain
(Ebook) Learning Julia Build high performance applications for scientific computing 1st Edition Table of contents:
- Conventions
- Reader feedback
- Downloading the example code
- Downloading the color images of this book
- Errata
- Piracy
- Questions
- Understanding Julia's Ecosystem
- What makes Julia unique?
- Features and advantages of Julia
- Installing Julia
- Julia on Ubuntu (Linux)
- Julia on Fedora/CentOS/Red Hat (Linux)
- Julia on Windows
- Julia on Mac
- Building from source
- Understanding the directory structure of Julia's source
- Julia's source stack
- Julia's importance in data science
- Benchmarks
- Using REPL
- Using help in Julia
- Plots in REPL
- Using Jupyter Notebook
- What is Juno?
- Package management
- Pkg.status() – package status
- Pkg.add() – adding packages
- Working with unregistered packages
- Pkg.update() – package update
- METADATA repository
- Developing packages
- Creating a new package
- A brief about multiple dispatch
- Methods in multiple dispatch
- Understanding LLVM and JIT
- Summary
- References
- Programming Concepts with Julia
- Revisiting programming paradigms
- Imperative programming paradigm
- Logical programming paradigm
- Functional programming paradigm
- Object-oriented paradigm
- Starting with Julia REPL
- Variables in Julia
- Naming conventions
- Integers, bits, bytes, and bools
- Playing with integers in REPL
- Understanding overflow behavior
- Understanding the Boolean data type
- Floating point numbers in Julia
- Special functions on floating point numbers
- Operations on floating point numbers
- Computations with arbitrary precision arithmetic
- Writing expressions with coefficients
- Logical and arithmetic operations in Julia
- Performing arithmetic operations
- Performing bitwise operations
- Operators for comparison and updating
- Precedence of operators
- Type conversions (numerical)
- Understanding arrays, matrices, and multidimensional arrays
- List comprehension in Julia
- Creating an empty array
- Operations on arrays
- Working with matrices
- Different operation on matrices
- Working with multidimensional arrays (matrices)
- Understanding sparse matrices
- Understanding DataFrames
- NA data type in DataArray
- The requirement of the NA data type
- DataArray – a series-like data structure
- DataFrames – tabular data structures
- Summary
- Functions in Julia
- Creating functions
- The special !
- Function arguments
- Pass by values versus pass by reference
- Pass by sharing
- The return keyword
- Arguments
- No arguments
- Varargs
- Optional arguments
- Understanding scope with respect to functions
- Nested functions
- Anonymous functions
- Multiple dispatch
- Understanding methods
- Recursion
- Built-in functions
- An example using simple built-in functions
- Summary
- Understanding Types and Dispatch
- Julia's type system
- What are types?
- Statically-typed versus dynamically-typed languages
- So, is Julia a dynamically-typed or statically-typed language?
- Type annotations
- More on types
- The Integer type
- The Float type
- The Char type
- The String type
- The Bool type
- Type conversions
- The subtypes and supertypes
- The supertype() function
- The subtype() function
- User-defined and composite data types
- Composite types
- Inner constructors
- Modules and interfaces
- Including files in modules
- Module file paths
- What is module precompilation?
- Multiple dispatch explained
- Summary
- Working with Control Flow
- Conditional and repeated evaluation
- Conditional evaluation in detail
- Short-circuit evaluation
- Repeated evaluation
- Defining range
- Some more examples of the for loop
- The break and continue
- Exception handling
- The throw() function
- The error() function
- The try/catch/finally blocks
- Tasks in Julia
- Summary
- Interoperability and Metaprogramming
- Interacting with operating systems
- Filesystem operations
- I/O operations
- Example
- Calling C and Python!
- Calling C from Julia
- Calling Python from Julia
- Expressions and macros
- Macros
- But why metaprogramming?
- Built-in macros
- Type introspection and reflection capabilities
- Type introspection
- Reflection capabilities
- Summary
- Numerical and Scientific Computation with Julia
- Working with data
- Working with text files
- Working with CSV and delimited file formats
- Working with DataFrames
- NA
- DataArrays
- DataFrames
- Linear algebra and differential calculus
- Linear algebra
- Differential calculus
- Statistics
- Simple statistics
- Basic statistics using DataFrames
- Using Pandas
- Advanced statistics topics
- Distributions
- TimeSeries
- Hypothesis testing
- Optimization
- JuMP
- Convex.jl
- Summary
- Data Visualization and Graphics
- Basic plots
- Bar graphs
- Histograms
- Pie charts
- Scatter plots
- 3-D surface plots
- Vega
- Area plots
- Aster plots
- Choropleth map
- Heatmaps
- Ribbon plots
- Wordcloud
- Scatter plots
- Gadfly
- Interacting with Gadfly using the plot function
- Plotting DataFrames with Gadfly
- Summary
- Connecting with Databases
- How to connect with databases?
- Relational databases
- SQLite
- MySQL
- NoSQL databases
- MongoDB
- Introduction to REST
- What is JSON?
- Web frameworks
- Summary
- Julia’s Internals
- Under the hood
- Femtolisp
- The Julia Core API
- Performance enhancements
- Global variables
- Type declarations
- Fields with abstract types
- Container fields with abstract type
- Declaring type for keyword arguments
- Miscellaneous performance tweaks
- Standard library
- LLVM and JIT explained
- Parallel computing
- Focusing on global variables
- Running loops in parallel
- TCP sockets and servers
- Sockets
- Creating packages
- Guidelines for package naming
People also search for (Ebook) Learning Julia Build high performance applications for scientific computing 1st Edition:
is it worth learning julia
design learning julia burke
deep learning julia
machine learning julia vs python
scientific machine learning julia
Tags: Anshul Joshi, Rahul Lakhanpal, Learning Julia, high performance, scientific computing
*Free conversion of into popular formats such as PDF, DOCX, DOC, AZW, EPUB, and MOBI after payment.