c# pdf viewer : C# split pdf SDK Library API wpf .net html sharepoint O%27Reilly%20-%20C++%20Cookbook%20(2007)46-part425

Recipe 11.12. Computing the Distance Between Two Vectors
You want to find the Euclidean distance between two vectors.
The Euclidean distance between two vectors is defined as the square root of the sum of squares of
differences between corresponding elements. This can be computed as shown in Example 11-22
Example 11-22. Finding the distance between two vectors
#include <cmath>
#include <iostream>
using namespace std;
template<class Iter_T, class Iter2_T>
double vectorDistance(Iter_T first, Iter_T last, Iter2_T first2) {
double ret = 0.0;
while (first != last) {
double dist = (*first++) - (*first2++);
ret += dist * dist;
return ret > 0.0 ? sqrt(ret) : 0.0;
int main( ) {
int v1[] = { 1, 5 };
int v2[] = { 4, 9 };
cout << "distance between vectors (1,5) and (4,9) is ";
cout << vectorDistance(v1, v1 + 2, v2) << endl;
The program in Example 11-22
produces the following output:
distance between vectors (1,5) and (4,9) is 5
Example 11-22
is a straightforward recipe that shows how to write a simple generic function in the style
of the STL. To compute the vector distances, I could have instead used the inner_product function I
chose not to use a functor, because it was more complex than was strictly needed. Example 11-23
shows how you can compute vector distance using a functor and the inner_product function from the
<numeric> header.
Example 11-23. Computing the distance between vectors using inner_product
#include <numeric>
#include <cmath>
#include <iostream>
#include <functional>
using namespace std;
template<class Value_T>
struct DiffSquared {
Value_T operator( )(Value_T x, Value_T y) const {
return (x - y) * (x - y);
Page 461
ABC Amber CHM Converter Trial version,
C# split pdf - Split, seperate PDF into multiple files in, ASP.NET, MVC, Ajax, WinForms, WPF
Explain How to Split PDF Document in Visual C#.NET Application
break a pdf into multiple files; can print pdf no pages selected
C# split pdf - VB.NET PDF File Split Library: Split, seperate PDF into multiple files in, ASP.NET, MVC, Ajax, WinForms, WPF
VB.NET PDF Document Splitter Control to Disassemble PDF Document
break a pdf into smaller files; break a pdf into parts
Page 462
ABC Amber CHM Converter Trial version,
C# WPF PDF Viewer SDK to view, annotate, convert and print PDF in
C# File: Merge PDF; C# File: Split PDF; C# Page: Insert PDF pages; C# Page: Delete PDF pages; C# Read: PDF Text Extract; C# Read: PDF
acrobat separate pdf pages; break pdf into smaller files
C# HTML5 PDF Viewer SDK to view PDF document online in C#.NET
C# File: Merge PDF; C# File: Split PDF; C# Page: Insert PDF pages; C# Page: Delete PDF pages; C# Read: PDF Text Extract; C# Read: PDF
pdf link to specific page; can't select text in pdf file
Page 463
ABC Amber CHM Converter Trial version,
C# PDF Convert to HTML SDK: Convert PDF to html files in
Home ›› XDoc.PDF ›› C# PDF: Convert PDF to HTML. C#.NET PDF SDK - Convert PDF to HTML in C#.NET. How to Use C# .NET XDoc.PDF
break a pdf password; break up pdf file
C# PDF Image Extract Library: Select, copy, paste PDF images in C#
PDF. |. Home ›› XDoc.PDF ›› C# PDF: Extract PDF Image. A powerful C#.NET PDF control compatible with windows operating system and built on .NET framework.
pdf split pages in half; break pdf password
Recipe 11.13. Implementing a Stride Iterator
You have a contiguous series of numbers and you want to iterate through the elements n at a time.
Example 11-24
presents a stride iterator class as a separate header file.
Example 11-24. stride_iter.hpp
#include <iterator>
#include <cassert>
template<class Iter_T>
class stride_iter
// public typedefs
typedef typename std::iterator_traits<Iter_T>::value_type value_type;
typedef typename std::iterator_traits<Iter_T>::reference reference;
typedef typename std::iterator_traits<Iter_T>::difference_type
typedef typename std::iterator_traits<Iter_T>::pointer pointer;
typedef std::random_access_iterator_tag iterator_category;
typedef stride_iter self;
// constructors
stride_iter( ) : m(NULL), step(0) { };
stride_iter(const self& x) : m(x.m), step(x.step) { }
stride_iter(Iter_T x, difference_type n) : m(x), step(n) { }
// operators
self& operator++( ) { m += step; return *this; }
self operator++(int) { self tmp = *this; m += step; return tmp; }
self& operator+=(difference_type x) { m += x * step; return *this; }
self& operator--( ) { m -= step; return *this; }
self operator--(int) { self tmp = *this; m -= step; return tmp; }
self& operator-=(difference_type x) { m -= x * step; return *this; }
reference operator[](difference_type n) { return m[n * step]; }
reference operator*( ) { return *m; }
// friend operators
friend bool operator==(const self& x, const self& y) {
assert(x.step == y.step);
return x.m == y.m;
friend bool operator!=(const self& x, const self& y) {
assert(x.step == y.step);
return x.m != y.m;
friend bool operator<(const self& x, const self& y) {
assert(x.step == y.step);
return x.m < y.m;
friend difference_type operator-(const self& x, const self& y) {
assert(x.step == y.step);
return (x.m - y.m) / x.step;
Page 464
ABC Amber CHM Converter Trial version,
C# PDF Convert to Jpeg SDK: Convert PDF to JPEG images in
›› C# PDF: Convert PDF to Jpeg. C# PDF - Convert PDF to JPEG in C#.NET. C#.NET PDF to JPEG Converting & Conversion Control. Convert PDF to JPEG Using C#.NET.
pdf no pages selected; pdf specification
C# PDF Library SDK to view, edit, convert, process PDF file for C#
Tell C# users how to: create a new PDF file and load PDF from other file formats; merge, append, and split PDF files; insert, delete, move, rotate, copy and
how to split pdf file by pages; pdf splitter
Page 465
ABC Amber CHM Converter Trial version,
C# WinForms Viewer: Load, View, Convert, Annotate and Edit PDF
overview. It provides plentiful C# class demo codes and tutorials on How to Use XDoc.PDF in C# .NET Programming Project. Plenty
pdf split pages; pdf split file
C# WPF Viewer: Load, View, Convert, Annotate and Edit PDF
overview. It provides plentiful C# class demo codes and tutorials on How to Use XDoc.PDF in C# .NET Programming Project. Plenty
break pdf into single pages; cannot select text in pdf
Page 466
ABC Amber CHM Converter Trial version,
Recipe 11.14. Implementing a Dynamically Sized Matrix
You need to store and represent Matricies of numbers where the dimensions (number of rows and
columns) are not known at compile time.
Example 11-28
provides a general purpose and efficient implementation of a dynamically sized matrix
class using the stride iterator from Recipe 11.12
and a valarray.
Example 11-28. matrix.hpp
#ifndef MATRIX_HPP
#define MATRIX_HPP
#include "stride_iter.hpp" // see Recipe 11.12
#include <valarray>
#include <numeric>
#include <algorithm>
template<class Value_T>
class matrix
// public typedefs
typedef Value_T value_type;
typedef matrix self;
typedef value_type* iterator;
typedef const value_type* const_iterator;
typedef Value_T* row_type;
typedef stride_iter<value_type*> col_type;
typedef const value_type* const_row_type;
typedef stride_iter<const value_type*> const_col_type;
// constructors
matrix( ) : nrows(0), ncols(0), m( ) { }
matrix(int r, int c) : nrows(r), ncols(c), m(r * c) { }
matrix(const self& x) : m(x.m), nrows(x.nrows), ncols(x.ncols) { }
template<typename T>
explicit matrix(const valarray<T>& x)  
: m(x.size( ) + 1), nrows(x.size( )), ncols(1) 
for (int i=0; i<x.size( ); ++i) m[i] = x[i];
// allow construction from matricies of other types
template<typename T>
explicit matrix(const matrix<T>& x) 
: m(x.size( ) + 1), nrows(x.nrows), ncols(x.ncols) 
copy(x.begin( ), x.end( ), m.begin( ));
// public functions
int rows( ) const { return nrows; }
int cols( ) const { return ncols; }
int size( ) const { return nrows * ncols; }
// element access
Page 467
ABC Amber CHM Converter Trial version,
Page 468
ABC Amber CHM Converter Trial version,
Page 469
ABC Amber CHM Converter Trial version,
Recipe 11.15. Implementing a Constant-Sized Matrix
You want an efficient matrix implementation where the dimensions (i.e., number of rows and columns)
are constants known at compile time.
When the dimensions of a matrix are known at compile time, the compiler can more easily optimize an
implementation that accepts the row and columns as template parameters as shown in Example 11-30
Example 11-30. kmatrix.hpp
#include "kvector.hpp"
#include "kstride_iter.hpp"
template<class Value_T, int Rows_N, int Cols_N>
class kmatrix
// public typedefs
typedef Value_T value_type;
typedef kmatrix self;
typedef Value_T* iterator;
typedef const Value_T* const_iterator;
typedef kstride_iter<Value_T*, 1> row_type;
typedef kstride_iter<Value_T*, Cols_N> col_type;
typedef kstride_iter<const Value_T*, 1> const_row_type;
typedef kstride_iter<const Value_T*, Cols_N> const_col_type;
// public constants
static const int nRows = Rows_N;
static const int nCols = Cols_N;
// constructors
kmatrix( ) { m = Value_T( ); }
kmatrix(const self& x) { m = x.m; }
explicit kmatrix(Value_T& x) { m = x.m; }
// public functions
static int rows( ) { return Rows_N; }
static int cols( ) { return Cols_N; }
row_type row(int n) { return row_type(begin( ) + (n * Cols_N)); }
col_type col(int n) { return col_type(begin( ) + n); }
const_row_type row(int n) const {
return const_row_type(begin( ) + (n * Cols_N));
const_col_type col(int n) const {
return const_col_type(begin( ) + n);
iterator begin( ) { return m.begin( ); }
iterator end( ) { return m.begin( ) + size( ); }
const_iterator begin( ) const { return m; }
const_iterator end( ) const { return m + size( ); }
static int size( ) { return Rows_N * Cols_N; }
// operators
row_type operator[](int n) { return row(n); }
const_row_type operator[](int n) const { return row(n); }
Page 470
ABC Amber CHM Converter Trial version,
Documents you may be interested
Documents you may be interested