Software engineering has advanced rapidly in recent years in parallel with the complexity and scale of software systems. New requirements in software systems yield innovative approaches that are developed either through introducing new paradigms or extending the capabilities of well-established approaches.
The iterative methods play an important role in solving linear equations that
arise in real-world applications. Numerous properties of the problem may affect
the efficiency of the solution. This book deals with algorithms for the solution of
linear systems of algebraic equations with large-scale sparse matrices, with a focus
on...
The author defines “Geometric Algebra Computing” as the geometrically intuitive development of algorithms using geometric algebra with a focus on their efficient implementation, and the goal of this book is to lay the foundations for the widespread use of geometric algebra as a powerful, intuitive mathematical language for...
The SATA (Serial ATA) interface is intended to expand and eventually replace the parallel ATA interface that has been the standard connection for hard drives and CD-ROM/DVD drives in Personal Computers for nearly twenty years. SATA, a high-speed serial version of ATA, is designed to maintain compatibility with software written for the...
Extend your C# skills to F#—and create data-rich computational and parallel software components faster and more efficiently. Focusing on F# 3.0 and Microsoft Visual Studio 2012, you’ll learn how to exploit F# features to solve both computationally-complex problems as well as everyday programming tasks.
This book constitutes the refereed proceedings of the 20th Annual European Symposium on Algorithms, ESA 2012, held in Ljubljana, Slovenia, in September 2012 in the context of the combined conference ALGO 2012. The 69 revised full papers presented were carefully reviewed and selected from 285 initial submissions: 56 out of 231 in track design...
Threading and concurrency are crucial to building high-performance Java applications -- but they have a reputation for complexity. High Performance Java Computing thoroughly demystifies these advanced development techniques. It delivers practical programming solutions, proven design patterns, and a rigorously-tested code library -- everything...
Unlike many of the management movements of the last half century knowledge management has no
single origin or unambiguous instantiation. Business Process Reengineering, the Balanced Score Card
and the Learning Organisation (to mention but a few) all originate with a single book which then defines
the field. In Knowledge Management...
These proceedings contain the papers that were presented at the 5th International
Conference on Language and Automata Theory and Applications (LATA
2011), held in Tarragona, Spain, during May 26–31, 2011.
The scope of LATA is rather broad, including: algebraic language theory;
algorithms for semi-structured...
Have you ever been in a hurry and pounded in a nail using something other than a
hammer? Or perhaps settled an argument concerning distances with “the length of my
arm is about 20 inches, and that’s about two arm lengths...”? You might not be willing
to fall for such obviously flawed shortcuts, but...
When you work with a computer, you can do several things at once. You can hear music while
you edit a document in a word processor and read your e-mail. This can be done because
your operating system allows the concurrency of tasks. Concurrent programming is about the
elements and mechanisms a platform offers to have multiple tasks...
Windows Azure was officially announced at PDC 2008, but looking back, I had a
quick look in the kitchen of Windows Azure in 2007 while I was visiting Redmond
during the Lead Enterprise Architect Program (LEAP) sessions. Pat Helland, a senior
architect at Microsoft, gave a talk on The irresistible forces meet the movable objects....