function _fnColumnsSumWidth(settings, targets, original, incVisible) {
		if (!Array.isArray(targets)) {
			targets = _fnColumnsFromHeader(targets);
		}

		var sum = 0;
		var unit;
		var columns = settings.aoColumns;

		for (var i = 0, ien = targets.length; i < ien; i++) {
			var column = columns[targets[i]];
			var definedWidth = original ?
				column.sWidthOrig :
				column.sWidth;

			if (!incVisible && column.bVisible === false) {
				continue;
			}

			if (definedWidth === null || definedWidth === undefined) {
				return null; // can't determine a defined width - browser defined
			}
			else if (typeof definedWidth === 'number') {
				unit = 'px';
				sum += definedWidth;
			}
			else {
				var matched = definedWidth.match(/([\d\.]+)([^\d]*)/);

				if (matched) {
					sum += matched[1] * 1;
					unit = matched.length === 3 ?
						matched[2] :
						'px';
				}
			}
		}

		return sum + unit;
	}
Get the width for a given set of columns

@param {*} settings DataTables settings object
@param {*} targets Columns - comma separated string or array of numbers
@param {*} original Use the original width (true) or calculated (false)
@param {*} incVisible Include visible columns (true) or not (false)
@returns Combined CSS value