Publications
 
 

Henderson, C.D.M., 2004, Efficient string concatenation using expression templates, , C/C++ Users Journal, article in press

Henderson, C.D.M., 2004, Optional Storage, C/C++ Users Journal 22(5), article in press

Henderson, C.D.M., 2002, Ready-to-run C++, Available online only

Henderson, C.D.M., 1989, Dragon Monitor, Dragon User, 69: January 1989

Henderson, C.D.M., 1988, Dragon Invoicer, Dragon User, 64: August 1988


Professional Papers
 
 

Efficient string concatenation using expression templates
C/C++ Users Journal, Volume & Issue TBD
Craig D.M. Henderson
Authored February 2004, Accepted February 2004

Expression templates are a powerful technique for delayed evaluation of expression. In this article, I use expression templates to make optimising string concatenation by taking advantage of the delay and allocating just one buffer that is large enough to contain the string that results from the entire expression. The expression is evaluated only when it is assigned to a basic_string object, so if the expression is never assigned, then the expression is never evaluated. This is contrary to the normal behaviour that would create a host of temporary strings and then just throw them away.

Keywords: C++ development; template; generic programming; expression templates

 
 

Optional Storage
C/C++ Users Journal, Volume 22, Number 5. May 2004
Craig D.M. Henderson
Authored April 2003, Accepted September 2003

This paper presents a technique for creating a generic data structure that can eliminate any unwanted data members at compile time, to optimise the storage requirements of the class but maintain a consistent interface. A running example is provided to demonstrate the use of the technique. A generic personal_details class is defined to represent the forenames, surname, gender, maiden name and children's names of a person. Storage requirements for members that are not required are eliminated at compile time, for example the maiden name from the representation Men.

Keywords: C++, template, memory optimization


Academic Papers
 
Under review
 

Automated identification of the orientation of mediolateral oblique mammographic images
Craig D.M. Henderson
University of the West of England, Bristol

Authored August 2003, Revised October 2003

When comparing mammogram images, whether temporal, bilateral or otherwise, it is essential that the orientation of the breasts in each image match. This initial image orientation problem is generally omitted from the registration procedure and left to the operator to provide the x-ray images in the order and orientation that the software system requires. In a fully automated system, this is an unacceptable burden on the system operator. This paper describes an algorithmic procedure for identifying the orientation of mediolateral oblique (MLO) breast images that can be used as a first step in the process of mammogram registration in an automated system.

Keywords: mammogram; image analysis; image orientation

 
In preparation
  Segmentation of mediolateral oblique mammographic images with accurate breast border detection
Craig D.M. Henderson
University of the West of England, Bristol

Work in progress; October 2003
MLO mammographic image segmentation
Keywords: mammogram; image analysis; image segmentation

Discussion Papers
 
 

Ready to Run C++
Craig D.M. Henderson
March 2002

Traditional compiler techniques centre on individual source files in their entirety to form a compilation unit. This requires the entire unit to be recompiled any of its dependent files have been modified, regardless of the nature of the change. This paper discusses how things could be improved.

Keywords: software development environment, background compilation

Download the PDF (31Kb)


Nostalgic
 
 
Dragon User Magazine

Dragon Monitor      Dragon User Magazine (69), January 1989
Craig D.M. Henderson
January 1989

A memory dump program written in BASIC for the Dragon 32 computer.

Keywords: memory dump, hex dump

 
 
Dragon User Magazine

Dragon Invoicer      Dragon User Magazine (64), August 1988
Craig D.M. Henderson
August 1988

A menu driven Invoice creation program written in BASIC for the Dragon 32 computer. Fully functioning program listing for the devoted readers to type into the machine before it crashed and you lost everything!


E-mail
         Craig's email address
         (Logo created at http://www.cooltext.com)