This document discusses formatting bits to better implement signal processing algorithms with integer arithmetic. It begins by introducing the context and objectives, which is to develop a methodology and tools to implement embedded filter algorithms using only integer arithmetic while controlling errors. It then discusses fixed-point arithmetic and how filters can be implemented using sum-of-products operations. The objective is given a bound on the final error, to find an implementation that reduces bit usage while controlling output error. The document proposes a two-step bit formatting method that first formats the most significant bits using Jackson's rule, then determines the minimum number of least significant bits that need to be kept to ensure faithful rounding of the final result.
This document discusses the implementation of digital filters in fixed-point arithmetic on embedded systems. It presents the need for methodology and tools to design fixed-point embedded filter systems. The key steps are: 1) choosing a filter algorithm, 2) rounding coefficients to fixed-point, and 3) implementing the algorithm. Optimal implementations minimize degradation from quantization errors while meeting resource constraints. The document outlines a global flow from filter design to code generation and optimization.
This document provides an overview of various algorithms and data structures including recursive functions, graph representations, depth-first search (DFS), breadth-first search (BFS), all-pairs shortest paths algorithms like Floyd-Warshall, single-source shortest paths algorithms like Dijkstra's, trees, binary search trees (BST), min-max heaps, greedy algorithms, backtracking, and hashing/hash tables. It includes pseudocode and source code examples for many of these algorithms.
The document discusses code generation techniques in compiler construction. It describes generating executable code from source code by using intermediate representations like three-address code and P-code. It covers generating code from syntax trees, implementing intermediate codes using data structures, and translating between different intermediate representations and target machine code.
The document discusses constructing a directed acyclic graph (DAG) to represent the computation of values in a basic block of code. It describes how to build the DAG by processing each statement and creating nodes for operators and values. The DAG makes it possible to analyze the code block to optimize computations by removing duplicate subexpressions and determine which values are used inside and outside the block.
I am Blake H. I am a Software Construction Assignment Expert at programminghomeworkhelp.com. I hold a PhD. in Programming, Curtin University, Australia. I have been helping students with their homework for the past 10 years. I solve assignments related to Software Construction.
Visit programminghomeworkhelp.com or email support@programminghomeworkhelp.com. You can also call on +1 678 648 4277 for any assistance with Software Construction Assignments.
I am Christopher Hemmingway. I am a Computer Science Assignment Expert at programminghomeworkhelp.com. I hold a Master's in Computer Science, Princeton University, Princeton. I have been helping students with their homework for the past 10 years. I solve assignments related to Computer Science.
Visit programminghomeworkhelp.com or email support@programminghomeworkhelp.com.You can also call on +1 678 648 4277 for any assistance with Computer Science assignments.
The document is a sample paper for a Computer Science class test. It contains 7 questions covering various topics in C++ programming. Some key points:
- Question 1 covers output of code snippets, syntax errors, and pretty printing.
- Question 2 asks about programming methodology, documentation, and characteristics of good programs.
- Question 3 tests knowledge of header files, errors in code, and evaluating expressions.
- Question 4 includes topics like type casting, loop conversions, and output of a code fragment.
- Question 5 defines terms like tokens and variables and asks short questions on comparisons, arrays, and data types.
- Question 6 gives programming problems on matrices, structures, and finding diagonal sums.
-
The document describes code generation for two commercial compilers:
1) The Borland C 3.0 compiler for the 80X86 generates assembly code using static simulation and frame pointers for function calls and local variable access.
2) The Sun 2.0 compiler for SPARCstations uses register-based calling conventions and generates efficient SPARC assembly code.
Both compilers handle code generation for arithmetic expressions, arrays, structures, pointers, control flow, and function calls.
This document discusses the implementation of digital filters in fixed-point arithmetic on embedded systems. It presents the need for methodology and tools to design fixed-point embedded filter systems. The key steps are: 1) choosing a filter algorithm, 2) rounding coefficients to fixed-point, and 3) implementing the algorithm. Optimal implementations minimize degradation from quantization errors while meeting resource constraints. The document outlines a global flow from filter design to code generation and optimization.
This document provides an overview of various algorithms and data structures including recursive functions, graph representations, depth-first search (DFS), breadth-first search (BFS), all-pairs shortest paths algorithms like Floyd-Warshall, single-source shortest paths algorithms like Dijkstra's, trees, binary search trees (BST), min-max heaps, greedy algorithms, backtracking, and hashing/hash tables. It includes pseudocode and source code examples for many of these algorithms.
The document discusses code generation techniques in compiler construction. It describes generating executable code from source code by using intermediate representations like three-address code and P-code. It covers generating code from syntax trees, implementing intermediate codes using data structures, and translating between different intermediate representations and target machine code.
The document discusses constructing a directed acyclic graph (DAG) to represent the computation of values in a basic block of code. It describes how to build the DAG by processing each statement and creating nodes for operators and values. The DAG makes it possible to analyze the code block to optimize computations by removing duplicate subexpressions and determine which values are used inside and outside the block.
I am Blake H. I am a Software Construction Assignment Expert at programminghomeworkhelp.com. I hold a PhD. in Programming, Curtin University, Australia. I have been helping students with their homework for the past 10 years. I solve assignments related to Software Construction.
Visit programminghomeworkhelp.com or email support@programminghomeworkhelp.com. You can also call on +1 678 648 4277 for any assistance with Software Construction Assignments.
I am Christopher Hemmingway. I am a Computer Science Assignment Expert at programminghomeworkhelp.com. I hold a Master's in Computer Science, Princeton University, Princeton. I have been helping students with their homework for the past 10 years. I solve assignments related to Computer Science.
Visit programminghomeworkhelp.com or email support@programminghomeworkhelp.com.You can also call on +1 678 648 4277 for any assistance with Computer Science assignments.
The document is a sample paper for a Computer Science class test. It contains 7 questions covering various topics in C++ programming. Some key points:
- Question 1 covers output of code snippets, syntax errors, and pretty printing.
- Question 2 asks about programming methodology, documentation, and characteristics of good programs.
- Question 3 tests knowledge of header files, errors in code, and evaluating expressions.
- Question 4 includes topics like type casting, loop conversions, and output of a code fragment.
- Question 5 defines terms like tokens and variables and asks short questions on comparisons, arrays, and data types.
- Question 6 gives programming problems on matrices, structures, and finding diagonal sums.
-
The document describes code generation for two commercial compilers:
1) The Borland C 3.0 compiler for the 80X86 generates assembly code using static simulation and frame pointers for function calls and local variable access.
2) The Sun 2.0 compiler for SPARCstations uses register-based calling conventions and generates efficient SPARC assembly code.
Both compilers handle code generation for arithmetic expressions, arrays, structures, pointers, control flow, and function calls.
Random numo Galois Field
Polynomial Arithmetic
Example of Polynomial Arithmetic
bers, its types and usage.
TRNG, PRNG, CHPRNG
Review of BBS
Stream Ciphering
RC4 algorithm
Basic Number Theory
Extended Euclidean Algorithm
Relevance of Extended Euclidean Algorithm
This document provides explanations for 33 coding questions related to C programming. It includes sample code snippets and predicted outputs or errors for each question. Key points covered include pointers, arrays, structures, operators, macros, enums, scope of labels, and more. The goal is to help readers predict program behavior and understand C programming concepts.
The document contains 18 coding questions related to C programming. For each question, the expected output or error is provided along with an explanation of the logic and concepts tested in the question. The questions cover topics like pointers, arrays, structures, operators, typecasting and more.
The document contains 15 questions from previous year CBSE and other board exam papers related to C++ programming. Each question provides code snippets and asks to determine possible outputs, values of variables, minimum and maximum values etc. For each question, the correct answer is provided along with justification in 1-2 sentences where needed. The questions are testing concepts like random numbers, loops, arrays, functions etc. and ability to read code and analyze output.
This document describes a student's software project on code categorization. The student aims to automatically categorize C/C++ codes by representing them as control flow and data flow graphs, then comparing the graphs. So far, the student can count variables, detect all variables with line numbers, and detect functions from code. Future plans are to make data flow and control flow graphs, represent them as matrices, and compare matrices to determine similarity for categorization. The student provides background on control flow graphs, data flow graphs, and progress made through code on GitHub.
This document provides information about a GATE CS mock exam from 1999, including sample questions from sections A and B. It advertises a test preparation series offered by GATE Forum, providing full practice exams designed by IISc alumni. The questions cover topics like probability, algorithms, automata, databases, operating systems, and computer architecture. It encourages readers to join online discussion forums to review exam papers with other students preparing for GATE CS.
The document discusses intermediate code generation in compiler design. It introduces intermediate code, features like retargeting and optimization. It describes three address code statements like a = b op c and quadruples which consist of four fields - op, arg1, arg2, and result to represent instructions. The conclusion states that intermediate code acts as an interface between the front-end and back-end of a compiler.
The document discusses partitioning three-address code into basic blocks. It defines a basic block as a sequence of consecutive statements that has one entry and exit point without branching, except at the end. It provides an algorithm to identify leaders and group statements into basic blocks based on the leaders. As an example, it applies the algorithm to three-address code computing a dot product, identifying two basic blocks - one with the first two statements and one containing the remaining statements.
This topic-based on Compiler Design Subject, III B.Tech-CSE Students, Intermediate Code Generation is the 3rd module of compiler design subject, these topics totally related to the second subjective assignment of Academic Writing in Swayam online course.
Introduction to code optimization by dipankarDipankar Nalui
This document discusses code optimization techniques used by compilers. It explains that optimization aims to improve code performance without changing functionality. The key phases of a compiler are described, including an optimization phase. Common optimization techniques are outlined, such as constant folding, propagation, elimination of redundant expressions, and algebraic simplification. It emphasizes that optimization should not alter program correctness and should improve performance by reducing time and space usage.
The document provides instructions for a GATE exam. It states that the exam is 3 hours long and contains questions worth 1 or 2 marks. It provides details on how answers should be marked on the answer sheet, notes on calculators and rough work, and information that negative marks will be given for incorrect answers. The instructions emphasize accurately filling out identification details on the answer sheet and carefully reading the entire paper.
The document discusses intermediate code generation in compilers. It describes how compilers generate intermediate code representations after parsing source code. Intermediate representations allow separating the front-end and back-end of compilers, facilitating code optimization and retargeting compilers to different architectures. Common intermediate representations discussed include abstract syntax trees, postfix notation, static single assignment form, and three-address instructions. The document also provides examples of generating three-address code using syntax-directed translation.
The document discusses code generation techniques in compiler construction. It covers generating code for control structures like if-statements and while-loops, as well as addressing techniques for data structures like arrays. Intermediate representations like three-address code and P-code are used. Label generation and back-patching allow jumps to not-yet defined code locations.
The document provides an overview of code level optimizations that can be performed by a compiler, including common subexpression elimination, copy propagation, dead code elimination, peephole optimization, and loop optimizations. It then gives examples of applying these optimizations to intermediate three address code to reduce computations and improve efficiency. Specific optimizations demonstrated include common subexpression elimination, copy propagation, dead code elimination, and identifying induction variables within loops. The overall goal of these optimizations is to reduce both the time and space requirements of the generated code.
The document discusses code generation which is the final phase of a compiler that generates target code such as assembly code by selecting memory locations for variables, translating instructions into assembly instructions, and assigning variables and results to registers, and it outlines some of the key issues in code generation such as handling the input representation, the target language, instruction selection, register allocation, and evaluation order.
NIPS2017 Few-shot Learning and Graph ConvolutionKazuki Fujikawa
The document discusses meta-learning and prototypical networks for few-shot learning. It introduces prototypical networks, which learn a metric space such that classification can be performed by finding the nearest class prototype to a query example in embedding space. The document summarizes results on few-shot image classification benchmarks like Omniglot and miniImageNet, finding that prototypical networks achieve state-of-the-art performance.
The document describes several Adobe interview test papers that the author took. It provides examples of questions asked in sections on coding (C/Java), data structures, algorithms, quantitative aptitude, and logical reasoning. Some example questions include finding the fourth smallest element in a binary search tree, reversing a linked list, checking if all computers are connected in a network, and problems involving arithmetic, triangles, and pie charts. The tests focused on fundamental concepts in coding, data structures, algorithms, and math.
This document discusses compiler architecture and intermediate code generation. It begins by describing the typical phases of a compiler: parsing, static checking, and code generation. It then discusses intermediate code, which ties the front end and back end phases together and is language and machine independent. Various forms of intermediate code are described, including trees, postfix notation, and triple/quadruple intermediate code. The rest of the document focuses on triple/quadruple code, including how it represents expressions, statements, addressing of arrays, and the translation process from source code to triple/quadruple intermediate code.
This document presents the design and implementation of an FPGA-based BCH decoder. It discusses BCH codes, which are binary error-correcting codes used in wireless communications. The implemented decoder is for a (15, 5, 3) BCH code, meaning it can correct up to 3 errors in a block of 15 bits. The decoder uses a serial input/output architecture and is implemented using VHDL on a FPGA device. It performs BCH decoding through syndrome calculation, running the Berlekamp-Massey algorithm to solve the key equation, and using Chien search to find error locations. The simulation result verifies correct decoding operation.
ECE 2103_L6 Boolean Algebra Canonical Forms [Autosaved].pptxMdJubayerFaisalEmon
This document discusses digital system design and Boolean algebra concepts. It covers canonical and standard forms, minterms and maxterms, conversions between forms, sum of minterms, product of maxterms, and other logic operations. Examples are provided to demonstrate minimizing Boolean functions using K-maps and converting between standard forms. DeMorgan's laws and other Boolean algebra properties are also explained. Tutorial problems are given at the end to practice simplifying Boolean expressions and converting between standard forms.
Random numo Galois Field
Polynomial Arithmetic
Example of Polynomial Arithmetic
bers, its types and usage.
TRNG, PRNG, CHPRNG
Review of BBS
Stream Ciphering
RC4 algorithm
Basic Number Theory
Extended Euclidean Algorithm
Relevance of Extended Euclidean Algorithm
This document provides explanations for 33 coding questions related to C programming. It includes sample code snippets and predicted outputs or errors for each question. Key points covered include pointers, arrays, structures, operators, macros, enums, scope of labels, and more. The goal is to help readers predict program behavior and understand C programming concepts.
The document contains 18 coding questions related to C programming. For each question, the expected output or error is provided along with an explanation of the logic and concepts tested in the question. The questions cover topics like pointers, arrays, structures, operators, typecasting and more.
The document contains 15 questions from previous year CBSE and other board exam papers related to C++ programming. Each question provides code snippets and asks to determine possible outputs, values of variables, minimum and maximum values etc. For each question, the correct answer is provided along with justification in 1-2 sentences where needed. The questions are testing concepts like random numbers, loops, arrays, functions etc. and ability to read code and analyze output.
This document describes a student's software project on code categorization. The student aims to automatically categorize C/C++ codes by representing them as control flow and data flow graphs, then comparing the graphs. So far, the student can count variables, detect all variables with line numbers, and detect functions from code. Future plans are to make data flow and control flow graphs, represent them as matrices, and compare matrices to determine similarity for categorization. The student provides background on control flow graphs, data flow graphs, and progress made through code on GitHub.
This document provides information about a GATE CS mock exam from 1999, including sample questions from sections A and B. It advertises a test preparation series offered by GATE Forum, providing full practice exams designed by IISc alumni. The questions cover topics like probability, algorithms, automata, databases, operating systems, and computer architecture. It encourages readers to join online discussion forums to review exam papers with other students preparing for GATE CS.
The document discusses intermediate code generation in compiler design. It introduces intermediate code, features like retargeting and optimization. It describes three address code statements like a = b op c and quadruples which consist of four fields - op, arg1, arg2, and result to represent instructions. The conclusion states that intermediate code acts as an interface between the front-end and back-end of a compiler.
The document discusses partitioning three-address code into basic blocks. It defines a basic block as a sequence of consecutive statements that has one entry and exit point without branching, except at the end. It provides an algorithm to identify leaders and group statements into basic blocks based on the leaders. As an example, it applies the algorithm to three-address code computing a dot product, identifying two basic blocks - one with the first two statements and one containing the remaining statements.
This topic-based on Compiler Design Subject, III B.Tech-CSE Students, Intermediate Code Generation is the 3rd module of compiler design subject, these topics totally related to the second subjective assignment of Academic Writing in Swayam online course.
Introduction to code optimization by dipankarDipankar Nalui
This document discusses code optimization techniques used by compilers. It explains that optimization aims to improve code performance without changing functionality. The key phases of a compiler are described, including an optimization phase. Common optimization techniques are outlined, such as constant folding, propagation, elimination of redundant expressions, and algebraic simplification. It emphasizes that optimization should not alter program correctness and should improve performance by reducing time and space usage.
The document provides instructions for a GATE exam. It states that the exam is 3 hours long and contains questions worth 1 or 2 marks. It provides details on how answers should be marked on the answer sheet, notes on calculators and rough work, and information that negative marks will be given for incorrect answers. The instructions emphasize accurately filling out identification details on the answer sheet and carefully reading the entire paper.
The document discusses intermediate code generation in compilers. It describes how compilers generate intermediate code representations after parsing source code. Intermediate representations allow separating the front-end and back-end of compilers, facilitating code optimization and retargeting compilers to different architectures. Common intermediate representations discussed include abstract syntax trees, postfix notation, static single assignment form, and three-address instructions. The document also provides examples of generating three-address code using syntax-directed translation.
The document discusses code generation techniques in compiler construction. It covers generating code for control structures like if-statements and while-loops, as well as addressing techniques for data structures like arrays. Intermediate representations like three-address code and P-code are used. Label generation and back-patching allow jumps to not-yet defined code locations.
The document provides an overview of code level optimizations that can be performed by a compiler, including common subexpression elimination, copy propagation, dead code elimination, peephole optimization, and loop optimizations. It then gives examples of applying these optimizations to intermediate three address code to reduce computations and improve efficiency. Specific optimizations demonstrated include common subexpression elimination, copy propagation, dead code elimination, and identifying induction variables within loops. The overall goal of these optimizations is to reduce both the time and space requirements of the generated code.
The document discusses code generation which is the final phase of a compiler that generates target code such as assembly code by selecting memory locations for variables, translating instructions into assembly instructions, and assigning variables and results to registers, and it outlines some of the key issues in code generation such as handling the input representation, the target language, instruction selection, register allocation, and evaluation order.
NIPS2017 Few-shot Learning and Graph ConvolutionKazuki Fujikawa
The document discusses meta-learning and prototypical networks for few-shot learning. It introduces prototypical networks, which learn a metric space such that classification can be performed by finding the nearest class prototype to a query example in embedding space. The document summarizes results on few-shot image classification benchmarks like Omniglot and miniImageNet, finding that prototypical networks achieve state-of-the-art performance.
The document describes several Adobe interview test papers that the author took. It provides examples of questions asked in sections on coding (C/Java), data structures, algorithms, quantitative aptitude, and logical reasoning. Some example questions include finding the fourth smallest element in a binary search tree, reversing a linked list, checking if all computers are connected in a network, and problems involving arithmetic, triangles, and pie charts. The tests focused on fundamental concepts in coding, data structures, algorithms, and math.
This document discusses compiler architecture and intermediate code generation. It begins by describing the typical phases of a compiler: parsing, static checking, and code generation. It then discusses intermediate code, which ties the front end and back end phases together and is language and machine independent. Various forms of intermediate code are described, including trees, postfix notation, and triple/quadruple intermediate code. The rest of the document focuses on triple/quadruple code, including how it represents expressions, statements, addressing of arrays, and the translation process from source code to triple/quadruple intermediate code.
This document presents the design and implementation of an FPGA-based BCH decoder. It discusses BCH codes, which are binary error-correcting codes used in wireless communications. The implemented decoder is for a (15, 5, 3) BCH code, meaning it can correct up to 3 errors in a block of 15 bits. The decoder uses a serial input/output architecture and is implemented using VHDL on a FPGA device. It performs BCH decoding through syndrome calculation, running the Berlekamp-Massey algorithm to solve the key equation, and using Chien search to find error locations. The simulation result verifies correct decoding operation.
ECE 2103_L6 Boolean Algebra Canonical Forms [Autosaved].pptxMdJubayerFaisalEmon
This document discusses digital system design and Boolean algebra concepts. It covers canonical and standard forms, minterms and maxterms, conversions between forms, sum of minterms, product of maxterms, and other logic operations. Examples are provided to demonstrate minimizing Boolean functions using K-maps and converting between standard forms. DeMorgan's laws and other Boolean algebra properties are also explained. Tutorial problems are given at the end to practice simplifying Boolean expressions and converting between standard forms.
This document discusses Boolean algebra and logic gates. It defines the complement of a function as changing all 0s to 1s and vice versa. De Morgan's laws are introduced, which allow complementing both sides of an equation. Circuits are represented using diagrams of logic gates and their inputs and outputs. Standard forms for representing Boolean expressions include sum of minterms and product of maxterms, which are defined as the ANDing and ORing of variables respectively. Minterms and maxterms are demonstrated using truth tables for two variables. The relationship between minterms and maxterms is that each equals the complement of the other.
This document discusses canonical and standard forms in digital logic circuits. It defines minterms and maxterms, and describes how to convert between sum of products and product of sums forms. Procedures for converting Boolean functions to sum of minterms and product of maxterms are provided with examples. Other logic operations such as XOR and XNOR are also defined.
Digital electronics k map comparators and their functionkumarankit06875
This document provides an overview of a digital electronics presentation covering K-maps, comparators, and their applications. The agenda includes an introduction to K-maps and how they are used to simplify Boolean expressions. It also covers comparators, their operation and function. Examples are given of using K-maps to minimize logic expressions and identify prime implicants. The applications of K-maps in digital circuit design optimization are discussed. Comparators and their use in examples is briefly outlined.
The document compares several tools for solving the Markowitz portfolio selection problem, including AMPL, Julia, Python, and C. It provides code implementations of the problem in each language/tool and compares the results. For a sample data set of 20 stocks, the solutions found were similar but not identical, with Python and C through Ipopt finding the lowest objective risk value of 0.002874.
The document introduces computer architecture and system software. It discusses the differences between computer organization and computer architecture. It describes the basic components of a computer based on the Von Neumann architecture, which consists of four main sub-systems: memory, ALU, control unit, and I/O. The document also discusses bottlenecks of the Von Neumann architecture and differences between microprocessors and microcontrollers. It covers computer arithmetic concepts like integer representation, floating point representation using IEEE 754 standard, and number bases conversion. Additional topics include binary operations like addition, subtraction using complements, and multiplication algorithms like Booth's multiplication.
This document discusses number systems and Boolean algebra concepts relevant to switching theory and logic design. It covers topics like number systems, binary codes, Boolean algebra theorems and properties, switching functions, logic gate simplification, and multilevel logic implementations. Various number representations are examined, including binary, octal, hexadecimal, and binary coded decimal. Conversion between number bases is demonstrated. Boolean concepts like complements, addition, and subtraction using 1's and 2's complement are also summarized.
This document introduces algorithms and their properties. It defines an algorithm as a precise set of instructions to perform a computation or solve a problem. Key properties of algorithms are discussed such as inputs, outputs, definiteness, correctness, finiteness, effectiveness and generality. Examples are given of maximum finding, linear search and binary search algorithms using pseudocode. The document discusses how algorithm complexity grows with input size and introduces big-O notation to analyze asymptotic growth rates of algorithms. It provides examples of analyzing time complexities for different algorithms.
This document discusses arithmetic functions in digital circuits. It begins by introducing iterative combinational circuits and binary adders such as half adders, full adders, and ripple carry adders. It then covers binary subtraction using two's complement representation and signed binary numbers. The document explains various signed number representations including signed magnitude and signed complement. It provides examples of addition and subtraction for signed integers in these representations.
This document discusses MIPS programming and assembly language. It begins with an overview of MIPS architecture and registers. It then covers machine language formats, operands, and addressing modes. Examples are provided for different instruction types like R-type, I-type, and J-type. Control flow instructions like branching and jumping are explained. High-level programming constructs like if/else statements and loops are translated to MIPS assembly code. Finally, arrays are introduced and how to access elements using a base register and offsets.
This document provides an overview of digital systems and binary numbers. It discusses topics such as analog vs digital signals, different number systems including binary, octal, decimal and hexadecimal, binary operations like addition and multiplication, and number base conversions. It also covers binary complements including 1's complement and 2's complement, which are important for signed binary numbers and binary subtraction.
This document discusses program analysis using random interpretation. It introduces random interpretation as a new class of program analyses that is almost as simple and efficient as random testing, but also almost as sound as abstract interpretation. Random interpretation works by choosing random inputs, executing both branches of conditionals, combining variable values at joins, and testing assertions. Examples are provided to illustrate how random interpretation can prove properties that random testing alone cannot, while avoiding the complexity of abstract interpretation. The document outlines applications of random interpretation to problems involving linear arithmetic, uninterpreted functions, and interprocedural analysis. Experimental results suggest randomized algorithms can discover more program properties than deterministic ones, while having only a small performance overhead.
Sample Exam Questions on Python for revisionafsheenfaiq2
This document provides 30 sample exam questions for part 1 of the final exam for the course CPIT 110 (Problem Solving and Programming). The questions cover topics from chapters 1-6 related to functions, including defining and calling functions, parameters, return values, scope of variables, and default arguments. The questions are multiple choice with 4 possible answers each.
The document discusses computer graphics concepts like points, pixels, lines, and circles. It begins with definitions of pixels and how they relate to points in geometry. It then covers the basic structure for specifying points in OpenGL and how to draw points, lines, and triangles. Next, it discusses algorithms for drawing lines, including the digital differential analyzer (DDA) method and Bresenham's line algorithm. Finally, it covers circle drawing and introduces the mid-point circle algorithm. In summary:
1) It defines key computer graphics concepts like pixels, points, lines, and circles.
2) It explains the basic OpenGL functions for drawing points and lines and provides examples of drawing simple shapes.
3) It
dynamic programming complete by Mumtaz Ali (03154103173)Mumtaz Ali
The document discusses dynamic programming, including its meaning, definition, uses, techniques, and examples. Dynamic programming refers to breaking large problems down into smaller subproblems, solving each subproblem only once, and storing the results for future use. This avoids recomputing the same subproblems repeatedly. Examples covered include matrix chain multiplication, the Fibonacci sequence, and optimal substructure. The document provides details on formulating and solving dynamic programming problems through recursive definitions and storing results in tables.
The document summarizes key concepts from Chapter 8 of the textbook "Fundamentals of Multimedia" on lossy compression algorithms. It introduces lossy compression and discusses distortion measures, rate-distortion theory, quantization techniques including uniform, non-uniform, and vector quantization. It also covers transform coding techniques such as the discrete cosine transform and its use in image compression standards to remove spatial redundancies by transforming pixel values into frequency coefficients.
The document discusses combinational logic circuits. It describes combinational logic design procedures including specification, formulation, optimization, technology mapping, and verification. It also discusses analysis procedures for logic diagrams, including labeling gate outputs and determining Boolean functions. Additional topics covered include half adders, full adders, binary adders, decoders, encoders, multiplexers, priority encoders, and binary-coded decimal to seven-segment displays. Diagrams and truth tables are provided for various logic gates and circuits.
The document is a laboratory manual for the course "Computer Graphics & Multimedia" that includes experiments on various computer graphics and multimedia topics. It contains an introduction, list of experiments, and details of the experiments. Some key experiments include implementing algorithms for line drawing, circle drawing, and applying transformations like translation, scaling and rotation. The objectives are to introduce basic computer graphics concepts and algorithms, and expose students to 2D and 3D graphics as well as multimedia formats and applications.
This document provides an overview of finite fields and their importance in cryptography. It discusses how finite fields allow for efficient storage and arithmetic operations on integers for encryption algorithms. The document outlines the basic properties of groups, rings, and fields. It also covers modular arithmetic, greatest common divisors, and Euclid's algorithm for computing gcd. The goal is to introduce concepts needed to understand the arithmetic of the AES encryption algorithm, which uses operations in the finite field GF(28).
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
HCL Notes and Domino License Cost Reduction in the World of DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-and-domino-license-cost-reduction-in-the-world-of-dlau/
The introduction of DLAU and the CCB & CCX licensing model caused quite a stir in the HCL community. As a Notes and Domino customer, you may have faced challenges with unexpected user counts and license costs. You probably have questions on how this new licensing approach works and how to benefit from it. Most importantly, you likely have budget constraints and want to save money where possible. Don’t worry, we can help with all of this!
We’ll show you how to fix common misconfigurations that cause higher-than-expected user counts, and how to identify accounts which you can deactivate to save money. There are also frequent patterns that can cause unnecessary cost, like using a person document instead of a mail-in for shared mailboxes. We’ll provide examples and solutions for those as well. And naturally we’ll explain the new licensing model.
Join HCL Ambassador Marc Thomas in this webinar with a special guest appearance from Franz Walder. It will give you the tools and know-how to stay on top of what is going on with Domino licensing. You will be able lower your cost through an optimized configuration and keep it low going forward.
These topics will be covered
- Reducing license cost by finding and fixing misconfigurations and superfluous accounts
- How do CCB and CCX licenses really work?
- Understanding the DLAU tool and how to best utilize it
- Tips for common problem areas, like team mailboxes, functional/test users, etc
- Practical examples and best practices to implement right away
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slackshyamraj55
Discover the seamless integration of RPA (Robotic Process Automation), COMPOSER, and APM with AWS IDP enhanced with Slack notifications. Explore how these technologies converge to streamline workflows, optimize performance, and ensure secure access, all while leveraging the power of AWS IDP and real-time communication via Slack notifications.
Maruthi Prithivirajan, Head of ASEAN & IN Solution Architecture, Neo4j
Get an inside look at the latest Neo4j innovations that enable relationship-driven intelligence at scale. Learn more about the newest cloud integrations and product enhancements that make Neo4j an essential choice for developers building apps with interconnected data and generative AI.
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-und-domino-lizenzkostenreduzierung-in-der-welt-von-dlau/
DLAU und die Lizenzen nach dem CCB- und CCX-Modell sind für viele in der HCL-Community seit letztem Jahr ein heißes Thema. Als Notes- oder Domino-Kunde haben Sie vielleicht mit unerwartet hohen Benutzerzahlen und Lizenzgebühren zu kämpfen. Sie fragen sich vielleicht, wie diese neue Art der Lizenzierung funktioniert und welchen Nutzen sie Ihnen bringt. Vor allem wollen Sie sicherlich Ihr Budget einhalten und Kosten sparen, wo immer möglich. Das verstehen wir und wir möchten Ihnen dabei helfen!
Wir erklären Ihnen, wie Sie häufige Konfigurationsprobleme lösen können, die dazu führen können, dass mehr Benutzer gezählt werden als nötig, und wie Sie überflüssige oder ungenutzte Konten identifizieren und entfernen können, um Geld zu sparen. Es gibt auch einige Ansätze, die zu unnötigen Ausgaben führen können, z. B. wenn ein Personendokument anstelle eines Mail-Ins für geteilte Mailboxen verwendet wird. Wir zeigen Ihnen solche Fälle und deren Lösungen. Und natürlich erklären wir Ihnen das neue Lizenzmodell.
Nehmen Sie an diesem Webinar teil, bei dem HCL-Ambassador Marc Thomas und Gastredner Franz Walder Ihnen diese neue Welt näherbringen. Es vermittelt Ihnen die Tools und das Know-how, um den Überblick zu bewahren. Sie werden in der Lage sein, Ihre Kosten durch eine optimierte Domino-Konfiguration zu reduzieren und auch in Zukunft gering zu halten.
Diese Themen werden behandelt
- Reduzierung der Lizenzkosten durch Auffinden und Beheben von Fehlkonfigurationen und überflüssigen Konten
- Wie funktionieren CCB- und CCX-Lizenzen wirklich?
- Verstehen des DLAU-Tools und wie man es am besten nutzt
- Tipps für häufige Problembereiche, wie z. B. Team-Postfächer, Funktions-/Testbenutzer usw.
- Praxisbeispiele und Best Practices zum sofortigen Umsetzen
For the full video of this presentation, please visit: https://www.edge-ai-vision.com/2024/06/building-and-scaling-ai-applications-with-the-nx-ai-manager-a-presentation-from-network-optix/
Robin van Emden, Senior Director of Data Science at Network Optix, presents the “Building and Scaling AI Applications with the Nx AI Manager,” tutorial at the May 2024 Embedded Vision Summit.
In this presentation, van Emden covers the basics of scaling edge AI solutions using the Nx tool kit. He emphasizes the process of developing AI models and deploying them globally. He also showcases the conversion of AI models and the creation of effective edge AI pipelines, with a focus on pre-processing, model conversion, selecting the appropriate inference engine for the target hardware and post-processing.
van Emden shows how Nx can simplify the developer’s life and facilitate a rapid transition from concept to production-ready applications.He provides valuable insights into developing scalable and efficient edge AI solutions, with a strong focus on practical implementation.
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Speck&Tech
ABSTRACT: A prima vista, un mattoncino Lego e la backdoor XZ potrebbero avere in comune il fatto di essere entrambi blocchi di costruzione, o dipendenze di progetti creativi e software. La realtà è che un mattoncino Lego e il caso della backdoor XZ hanno molto di più di tutto ciò in comune.
Partecipate alla presentazione per immergervi in una storia di interoperabilità, standard e formati aperti, per poi discutere del ruolo importante che i contributori hanno in una comunità open source sostenibile.
BIO: Sostenitrice del software libero e dei formati standard e aperti. È stata un membro attivo dei progetti Fedora e openSUSE e ha co-fondato l'Associazione LibreItalia dove è stata coinvolta in diversi eventi, migrazioni e formazione relativi a LibreOffice. In precedenza ha lavorato a migrazioni e corsi di formazione su LibreOffice per diverse amministrazioni pubbliche e privati. Da gennaio 2020 lavora in SUSE come Software Release Engineer per Uyuni e SUSE Manager e quando non segue la sua passione per i computer e per Geeko coltiva la sua curiosità per l'astronomia (da cui deriva il suo nickname deneb_alpha).
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
How to Get CNIC Information System with Paksim Ga.pptxdanishmna97
Pakdata Cf is a groundbreaking system designed to streamline and facilitate access to CNIC information. This innovative platform leverages advanced technology to provide users with efficient and secure access to their CNIC details.
GraphRAG for Life Science to increase LLM accuracyTomaz Bratanic
GraphRAG for life science domain, where you retriever information from biomedical knowledge graphs using LLMs to increase the accuracy and performance of generated answers
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc
How does your privacy program stack up against your peers? What challenges are privacy teams tackling and prioritizing in 2024?
In the fifth annual Global Privacy Benchmarks Survey, we asked over 1,800 global privacy professionals and business executives to share their perspectives on the current state of privacy inside and outside of their organizations. This year’s report focused on emerging areas of importance for privacy and compliance professionals, including considerations and implications of Artificial Intelligence (AI) technologies, building brand trust, and different approaches for achieving higher privacy competence scores.
See how organizational priorities and strategic approaches to data security and privacy are evolving around the globe.
This webinar will review:
- The top 10 privacy insights from the fifth annual Global Privacy Benchmarks Survey
- The top challenges for privacy leaders, practitioners, and organizations in 2024
- Key themes to consider in developing and maintaining your privacy program
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!SOFTTECHHUB
As the digital landscape continually evolves, operating systems play a critical role in shaping user experiences and productivity. The launch of Nitrux Linux 3.5.0 marks a significant milestone, offering a robust alternative to traditional systems such as Windows 11. This article delves into the essence of Nitrux Linux 3.5.0, exploring its unique features, advantages, and how it stands as a compelling choice for both casual users and tech enthusiasts.
1. Context and Objectives
Bits Formatting
Conclusion
Formatting bits to better implement signal
processing algorithms
e
Benoit Lopez - Thibault Hilaire - Laurent-St´phane Didier
PECCS 2014
January 9th 2014
1/20
2. Context and Objectives
Bits Formatting
Conclusion
Outline
1
Context and Objectives
2
Bits Formatting
3
Conclusion
2/20
3. Context and Objectives
Bits Formatting
Conclusion
In PECCS’14
Smartphone applications, measurement applications, embedded
devices, ...
3/20
4. Context and Objectives
Bits Formatting
Conclusion
In PECCS’14
Smartphone applications, measurement applications, embedded
devices, ...
Implementation problem
We need methodology and tools for the implementation of
embedded filter algorithms with only integer arithmetic.
3/20
5. Context and Objectives
Bits Formatting
Conclusion
On the first hand... A filter
x[n]
z
b0
+
+
z
+
+
h(z) =
1
z
Pn
1+
b1
i=0
Pn
bi z
1
y[n]
+
b1
a1
b2
z
a2
1
b3
x[n]
1
a1
1
b2
z
y[n]
+
z
b1
z
+
1
a2
z
1
z
1
z
1
i
i=1 ai z
i
z
1
b3
1
z
a3
1
a3
Signal Processing
LTI filters: FIR or IIR
Its transfer function
Algorithmic relationship used to compute output(s) from
input(s), for example:
n
y (k) =
i=0
n
bi u(k − i) −
i=1
ai y (k − i)
4/20
6. Context and Objectives
Bits Formatting
Conclusion
On the other hand... A target
...
↵
±2
s
2
...
2
0
2
↵
Hardware target (FPGA, ASIC) or software target (DSP,µC)
Due to resources constraints (cost, size, power consumption,
...) we have no FPU, so we can only use fixed-point arithmetic
5/20
7. Context and Objectives
Bits Formatting
Conclusion
Fixed-Point Arithmetic
Fixed-Point number
Fixed-point numbers are integers used to approximate real
numbers.
−2m 2m−1
Xm
20
2−1
2
X0
X−1
X
w
Representation : X .2 with X = Xm Xm−1 ...X0 ...X .
Format : determined by wordlength and fixed-point position,
and noted for example (m, ).
6/20
8. Context and Objectives
Bits Formatting
Conclusion
Fixed-Point Arithmetic
Fixed-Point number
Fixed-point numbers are integers used to approximate real
numbers.
−2m 2m−1
Xm
20
2−1
2
X0
X−1
X
w
Representation : X .2 with X = Xm Xm−1 ...X0 ...X .
Format : determined by wordlength and fixed-point position,
and noted for example (m, ).
Computation in finite precision and choice of formats imply errors.
Numerical degradations
quantization of the coefficients
round-off errors in computations
6/20
9. Context and Objectives
Bits Formatting
Conclusion
Filter
IIR Filter
Let H be the transfer function of a n − th order IIR filter :
H(z) =
b0 + b1 z −1 + · · · + bn z −n
,
1 + a1 z −1 + · · · + an z −n
∀z ∈ C.
(1)
7/20
10. Context and Objectives
Bits Formatting
Conclusion
Filter
IIR Filter
Let H be the transfer function of a n − th order IIR filter :
H(z) =
b0 + b1 z −1 + · · · + bn z −n
,
1 + a1 z −1 + · · · + an z −n
∀z ∈ C.
(1)
This filter is usually realized with the following algorithm
n
y (k) =
i=0
n
bi u(k − i) −
i=1
ai y (k − i)
(2)
where u(k) is the input at step k and y (k) the output at step k.
7/20
11. Context and Objectives
Bits Formatting
Conclusion
Filter
IIR Filter
Let H be the transfer function of a n − th order IIR filter :
H(z) =
b0 + b1 z −1 + · · · + bn z −n
,
1 + a1 z −1 + · · · + an z −n
∀z ∈ C.
(1)
This filter is usually realized with the following algorithm
n
y (k) =
i=0
n
bi u(k − i) −
i=1
ai y (k − i)
(2)
where u(k) is the input at step k and y (k) the output at step k.
We can see round-off errors as the add of an error e(k) on the
output and only y † (k) can be computed.
n
y † (k) =
i=0
n
bi u(k − i) −
i=1
ai y † (k − i) + e(k).
(3)
7/20
12. Context and Objectives
Bits Formatting
Conclusion
Filter
u(k)
e(k)
H
He
y(k)
∆y(k)
+
y † (k)
∆y (k) y † (k) − y (k) can be seen as the result of the error
through the filter He :
He (z) =
1
,
1 + a1 z −1 + · · · + an z −n
∀z ∈ C.
8/20
13. Context and Objectives
Bits Formatting
Conclusion
Filter
u(k)
e(k)
H
He
y(k)
∆y(k)
+
y † (k)
∆y (k) y † (k) − y (k) can be seen as the result of the error
through the filter He :
He (z) =
1
,
1 + a1 z −1 + · · · + an z −n
∀z ∈ C.
If the error e(k) is in [e; e], then we are able to compute ∆y and
∆y such that ∆y (k) is in [∆y ; ∆y ] :
∆y
=
∆y
=
e +e
e −e
|He |DC −
He
2
2
e +e
e −e
|He |DC +
He
2
2
∞
∞
8/20
14. Context and Objectives
Bits Formatting
Conclusion
Objective
Fixed-Point implementation and especially the choice of formats,
imply errors.
In the context of digital signal processing, we are able to control
these errors.
9/20
15. Context and Objectives
Bits Formatting
Conclusion
Objective
Fixed-Point implementation and especially the choice of formats,
imply errors.
In the context of digital signal processing, we are able to control
these errors.
Objective:
Given an algorithm and a bound on the final error, find an
implementation which reduces the number of bits of the
computation while controlling the error on the output result.
9/20
16. Context and Objectives
Bits Formatting
Conclusion
Outline
1
Context and Objectives
2
Bits Formatting
3
Conclusion
10/20
17. Context and Objectives
Bits Formatting
Conclusion
Sum-of-Products
The only operations needed in filter algorithm computation are
sum-of-products:
n
s=
i=1
n
ci · xi =
pi
i=1
where ci are known constants and xi variables (inputs, state or
intermediate variables).
In the context of filter design, we know the fixed-point format
of the final result.
11/20
18. Context and Objectives
Bits Formatting
Conclusion
Formatting
s
s
s
s
s
s
s
s
s
sf
Context
A sum of N terms (pi )1≤i≤N with different formats, and the known
FPF of final result (sf ), less than total wordlength (s).
12/20
19. Context and Objectives
Bits Formatting
Conclusion
Formatting
s
s
s
s
s
s
s
s
s
sf
Context
A sum of N terms (pi )1≤i≤N with different formats, and the known
FPF of final result (sf ), less than total wordlength (s).
Questions:
Can we remove bits that don’t impact the final result ? If we want
a faithful round-off of the final result, can we remove some bits ?
12/20
20. Context and Objectives
Bits Formatting
Conclusion
Formatting
s
s
s
s
s
s
s
s
s
sf
Two-step formatting
1
most significant bits
2
least significant bits
12/20
21. Context and Objectives
Bits Formatting
Conclusion
MSB formatting
Jacskon’s Rule (1979)
This Rule states that in consecutive additions and/or subtractions
in two’s complement arithmetic, some intermediate results and
operands may overflow. As long as the final result representation
can handle the final result without overflow, then the result is valid.
13/20
22. Context and Objectives
Bits Formatting
Conclusion
MSB formatting
Jacskon’s Rule (1979)
This Rule states that in consecutive additions and/or subtractions
in two’s complement arithmetic, some intermediate results and
operands may overflow. As long as the final result representation
can handle the final result without overflow, then the result is valid.
Example :
We want to compute 104 + 82 − 94 with 8 bits :
13/20
23. Context and Objectives
Bits Formatting
Conclusion
MSB formatting
Jacskon’s Rule (1979)
This Rule states that in consecutive additions and/or subtractions
in two’s complement arithmetic, some intermediate results and
operands may overflow. As long as the final result representation
can handle the final result without overflow, then the result is valid.
Example :
We want to compute 104 + 82 − 94 with 8 bits :
104 + 82 = −70 overflow !
13/20
24. Context and Objectives
Bits Formatting
Conclusion
MSB formatting
Jacskon’s Rule (1979)
This Rule states that in consecutive additions and/or subtractions
in two’s complement arithmetic, some intermediate results and
operands may overflow. As long as the final result representation
can handle the final result without overflow, then the result is valid.
Example :
We want to compute 104 + 82 − 94 with 8 bits :
104 + 82 = −70 overflow !
but −70 − 94 = 92 overflow !
This second overflow cancels the first one and we obtain the
expected result.
13/20
25. Context and Objectives
Bits Formatting
Conclusion
MSB formatting
Fixed-Point Jacskon’s Rule
Let s be a sum of n fixed-point number pi s, in format (M, L). If s
is known to have a final MSB equals to mf with mf < M, then:
mf +1
s=
1≤i≤n
mf
j=L
2j pi,j
s
s
s
s
s
s
s
M
s
mf
L
s
sf
14/20
26. Context and Objectives
Bits Formatting
Conclusion
MSB formatting
Fixed-Point Jacskon’s Rule
Let s be a sum of n fixed-point number pi s, in format (M, L). If s
is known to have a final MSB equals to mf with mf < M, then:
mf +1
s=
1≤i≤n
mf
j=L
2j pi,j
s
s
s
s
s
s
s s s
s
M
mf
L
s
sf
14/20
27. Context and Objectives
Bits Formatting
Conclusion
LSB formatting
LSB Formatting main idea
s
s
s
s
s
s
s
s
s
sf
15/20
28. Context and Objectives
Bits Formatting
Conclusion
LSB formatting
LSB Formatting main idea
s
s
s
s
s
s
s
s
s
sf
If we remove some bits, we will not compute sf anymore but a
faithful round-off of sf can be acceptable.
15/20
29. Context and Objectives
Bits Formatting
Conclusion
LSB formatting
LSB Formatting main idea
s
s
s
s
s
s
sδ
s
δ
s
sf
Can we determine a minimal δ such that sf is always a faithful
round-off of sf ?
15/20
30. Context and Objectives
Bits Formatting
Conclusion
LSB formatting
LSB Formatting main idea
s
s
s
s
s
s
sδ
s
δ
s
sf
δ evaluation
For both rounding mode (round-to-nearest or truncation), the
smallest integer δ that provides sf = lf (sf ) is given by:
δ = log2 (n)
15/20
31. Context and Objectives
Bits Formatting
Conclusion
Formatting
Formatting method
s
s
s
s
s
s
s
s
1
s
sf
we compute δ
16/20
32. Context and Objectives
Bits Formatting
Conclusion
Formatting
Formatting method
s
s
s
s
s
s
sδ
s
δ
s
1
2
sf
we compute δ
we format all pi s into FPF (mf , lf − δ)
16/20
33. Context and Objectives
Bits Formatting
Conclusion
Formatting
Formatting method
s
s
s
s
sδ
s
δ
s
1
2
3
sf
we compute δ
we format all pi s into FPF (mf , lf − δ)
we compute sδ
16/20
34. Context and Objectives
Bits Formatting
Conclusion
Formatting
Formatting method
s
s
s
s
sδ
s
δ
s
1
2
3
4
we
we
we
we
sf
compute δ
format all pi s into FPF (mf , lf − δ)
compute sδ
obtain sf from sδ
16/20
35. Context and Objectives
Bits Formatting
Conclusion
Formatting
Example
The following algorithm is the fixed-point algorithm of a 4th −order
butterworth filter:
y (k) = 0.0013279914856 u(k) + 0.00531196594238 u(k − 1)
+0.00796794891357 u(k − 2) + 0.00531196594238 u(k − 3)
+0.0013279914856 u(k − 4) + 2.87109375 y (k − 1)
−3.20825195312 y (k − 2) + 1.63458251953 y (k − 3)
−0.318710327148 y (k − 4)
Inputs datas :
wordlength of constants, u(k) and y (k) : 16 bits
u(k) ∈ [−13, 13]
17/20
36. Context and Objectives
Bits Formatting
Conclusion
Formatting
Example
The following algorithm is the fixed-point algorithm of a 4th −order
butterworth filter:
y (k) = 0.0013279914856 u(k) + 0.00531196594238 u(k − 1)
+0.00796794891357 u(k − 2) + 0.00531196594238 u(k − 3)
+0.0013279914856 u(k − 4) + 2.87109375 y (k − 1)
−3.20825195312 y (k − 2) + 1.63458251953 y (k − 3)
−0.318710327148 y (k − 4)
Inputs datas :
wordlength of constants, u(k) and y (k) : 16 bits
u(k) ∈ [−13, 13] and y (k) ∈ [−17.123541; 17.123541]
17/20
38. Context and Objectives
Bits Formatting
Conclusion
Formatting
Example
s
s
s
s
s
s
s
s
s
s
s
δ = log2 (n)
18/20
39. Context and Objectives
Bits Formatting
Conclusion
Conclusion
We try to answer the following question :
For a given sum-of-products, how to reduce the number of bits of
the operands while controlling the error ?
For this, some works have been realized:
FiPoGen : a tool generating fixed-point code for a given
sum-of-products
Bits formatting : a first step towards word-length optimization
19/20