Convolution1D
keras.layers.convolutional.Convolution1D(nb_filter, filter_length, init='uniform', activation='linear', weights=None, border_mode='valid', subsample_length=1, W_regularizer=None, b_regularizer=None, activity_regularizer=None, W_constraint=None, b_constraint=None, bias=True, input_dim=None, input_length=None)
Convolution operator for filtering neighborhoods of one-dimensional inputs.
When using this layer as the first layer in a model,
either provide the keyword argument input_dim
(int, e.g. 128 for sequences of 128-dimensional vectors),
or input_shape
(tuple of integers, e.g. (10, 128) for sequences
of 10 vectors of 128-dimensional vectors).
Example
# apply a convolution 1d of length 3 to a sequence with 10 timesteps,
# with 64 output filters
model = Sequential()
model.add(Convolution1D(64, 3, border_mode='same', input_shape=(10, 32)))
# now model.output_shape == (None, 10, 64)
# add a new conv1d on top
model.add(Convolution1D(32, 3, border_mode='same'))
# now model.output_shape == (None, 10, 32)
Arguments
- nb_filter: Number of convolution kernels to use (dimensionality of the output).
- filter_length: The extension (spatial or temporal) of each filter.
- init: name of initialization function for the weights of the layer
(see initializations),
or alternatively, Theano function to use for weights initialization.
This parameter is only relevant if you don't pass a
weights
argument. - activation: name of activation function to use (see activations), or alternatively, elementwise Theano function. If you don't specify anything, no activation is applied (ie. "linear" activation: a(x) = x).
- weights: list of numpy arrays to set as initial weights.
- border_mode: 'valid' or 'same'.
- subsample_length: factor by which to subsample output.
- W_regularizer: instance of WeightRegularizer (eg. L1 or L2 regularization), applied to the main weights matrix.
- b_regularizer: instance of WeightRegularizer, applied to the bias.
- activity_regularizer: instance of ActivityRegularizer, applied to the network output.
- W_constraint: instance of the constraints module (eg. maxnorm, nonneg), applied to the main weights matrix.
- b_constraint: instance of the constraints module, applied to the bias.
- bias: whether to include a bias (i.e. make the layer affine rather than linear).
- input_dim: Number of channels/dimensions in the input.
Either this argument or the keyword argument
input_shape
must be provided when using this layer as the first layer in a model. - input_length: Length of input sequences, when it is constant.
This argument is required if you are going to connect
Flatten
thenDense
layers upstream (without it, the shape of the dense outputs cannot be computed).
Input shape
3D tensor with shape: (samples, steps, input_dim)
.
Output shape
3D tensor with shape: (samples, new_steps, nb_filter)
.
steps
value might have changed due to padding.
AtrousConvolution1D
keras.layers.convolutional.AtrousConvolution1D(nb_filter, filter_length, init='uniform', activation='linear', weights=None, border_mode='valid', subsample_length=1, atrous_rate=1, W_regularizer=None, b_regularizer=None, activity_regularizer=None, W_constraint=None, b_constraint=None, bias=True)
Atrous Convolution operator for filtering neighborhoods of one-dimensional inputs.
A.k.a dilated convolution or convolution with holes.
When using this layer as the first layer in a model,
either provide the keyword argument input_dim
(int, e.g. 128 for sequences of 128-dimensional vectors),
or input_shape
(tuples of integers, e.g. (10, 128) for sequences
of 10 vectors of 128-dimensional vectors).
Example
# apply an atrous convolution 1d with atrous rate 2 of length 3 to a sequence with 10 timesteps,
# with 64 output filters
model = Sequential()
model.add(AtrousConvolution1D(64, 3, atrous_rate=2, border_mode='same', input_shape=(10, 32)))
# now model.output_shape == (None, 10, 64)
# add a new atrous conv1d on top
model.add(AtrousConvolution1D(32, 3, atrous_rate=2, border_mode='same'))
# now model.output_shape == (None, 10, 32)
Arguments
- nb_filter: Number of convolution kernels to use (dimensionality of the output).
- filter_length: The extension (spatial or temporal) of each filter.
- init: name of initialization function for the weights of the layer
(see initializations),
or alternatively, Theano function to use for weights initialization.
This parameter is only relevant if you don't pass a
weights
argument. - activation: name of activation function to use (see activations), or alternatively, elementwise Theano function. If you don't specify anything, no activation is applied (ie. "linear" activation: a(x) = x).
- weights: list of numpy arrays to set as initial weights.
- border_mode: 'valid' or 'same'.
- subsample_length: factor by which to subsample output.
- atrous_rate: Factor for kernel dilation. Also called filter_dilation elsewhere.
- W_regularizer: instance of WeightRegularizer (eg. L1 or L2 regularization), applied to the main weights matrix.
- b_regularizer: instance of WeightRegularizer, applied to the bias.
- activity_regularizer: instance of ActivityRegularizer, applied to the network output.
- W_constraint: instance of the constraints module (eg. maxnorm, nonneg), applied to the main weights matrix.
- b_constraint: instance of the constraints module, applied to the bias.
- bias: whether to include a bias (i.e. make the layer affine rather than linear).
- input_dim: Number of channels/dimensions in the input.
Either this argument or the keyword argument
input_shape
must be provided when using this layer as the first layer in a model. - input_length: Length of input sequences, when it is constant.
This argument is required if you are going to connect
Flatten
thenDense
layers upstream (without it, the shape of the dense outputs cannot be computed).
Input shape
3D tensor with shape: (samples, steps, input_dim)
.
Output shape
3D tensor with shape: (samples, new_steps, nb_filter)
.
steps
value might have changed due to padding.
Convolution2D
keras.layers.convolutional.Convolution2D(nb_filter, nb_row, nb_col, init='glorot_uniform', activation='linear', weights=None, border_mode='valid', subsample=(1, 1), dim_ordering='default', W_regularizer=None, b_regularizer=None, activity_regularizer=None, W_constraint=None, b_constraint=None, bias=True)
Convolution operator for filtering windows of two-dimensional inputs.
When using this layer as the first layer in a model,
provide the keyword argument input_shape
(tuple of integers, does not include the sample axis),
e.g. input_shape=(3, 128, 128)
for 128x128 RGB pictures.
Examples
# apply a 3x3 convolution with 64 output filters on a 256x256 image:
model = Sequential()
model.add(Convolution2D(64, 3, 3, border_mode='same', input_shape=(3, 256, 256)))
# now model.output_shape == (None, 64, 256, 256)
# add a 3x3 convolution on top, with 32 output filters:
model.add(Convolution2D(32, 3, 3, border_mode='same'))
# now model.output_shape == (None, 32, 256, 256)
Arguments
- nb_filter: Number of convolution filters to use.
- nb_row: Number of rows in the convolution kernel.
- nb_col: Number of columns in the convolution kernel.
- init: name of initialization function for the weights of the layer
(see initializations), or alternatively,
Theano function to use for weights initialization.
This parameter is only relevant if you don't pass
a
weights
argument. - activation: name of activation function to use (see activations), or alternatively, elementwise Theano function. If you don't specify anything, no activation is applied (ie. "linear" activation: a(x) = x).
- weights: list of numpy arrays to set as initial weights.
- border_mode: 'valid' or 'same'.
- subsample: tuple of length 2. Factor by which to subsample output. Also called strides elsewhere.
- W_regularizer: instance of WeightRegularizer (eg. L1 or L2 regularization), applied to the main weights matrix.
- b_regularizer: instance of WeightRegularizer, applied to the bias.
- activity_regularizer: instance of ActivityRegularizer, applied to the network output.
- W_constraint: instance of the constraints module (eg. maxnorm, nonneg), applied to the main weights matrix.
- b_constraint: instance of the constraints module, applied to the bias.
- dim_ordering: 'th' or 'tf'. In 'th' mode, the channels dimension
(the depth) is at index 1, in 'tf' mode is it at index 3.
It defaults to the
image_dim_ordering
value found in your Keras config file at~/.keras/keras.json
. If you never set it, then it will be "tf". - bias: whether to include a bias (i.e. make the layer affine rather than linear).
Input shape
4D tensor with shape:
(samples, channels, rows, cols)
if dim_ordering='th'
or 4D tensor with shape:
(samples, rows, cols, channels)
if dim_ordering='tf'.
Output shape
4D tensor with shape:
(samples, nb_filter, new_rows, new_cols)
if dim_ordering='th'
or 4D tensor with shape:
(samples, new_rows, new_cols, nb_filter)
if dim_ordering='tf'.
rows
and cols
values might have changed due to padding.
AtrousConvolution2D
keras.layers.convolutional.AtrousConvolution2D(nb_filter, nb_row, nb_col, init='glorot_uniform', activation='linear', weights=None, border_mode='valid', subsample=(1, 1), atrous_rate=(1, 1), dim_ordering='default', W_regularizer=None, b_regularizer=None, activity_regularizer=None, W_constraint=None, b_constraint=None, bias=True)
Atrous Convolution operator for filtering windows of two-dimensional inputs.
A.k.a dilated convolution or convolution with holes.
When using this layer as the first layer in a model,
provide the keyword argument input_shape
(tuple of integers, does not include the sample axis),
e.g. input_shape=(3, 128, 128)
for 128x128 RGB pictures.
Examples
# apply a 3x3 convolution with atrous rate 2x2 and 64 output filters on a 256x256 image:
model = Sequential()
model.add(AtrousConvolution2D(64, 3, 3, atrous_rate=(2,2), border_mode='valid', input_shape=(3, 256, 256)))
# now the actual kernel size is dilated from 3x3 to 5x5 (3+(3-1)*(2-1)=5)
# thus model.output_shape == (None, 64, 252, 252)
Arguments
- nb_filter: Number of convolution filters to use.
- nb_row: Number of rows in the convolution kernel.
- nb_col: Number of columns in the convolution kernel.
- init: name of initialization function for the weights of the layer
(see initializations), or alternatively,
Theano function to use for weights initialization.
This parameter is only relevant if you don't pass
a
weights
argument. - activation: name of activation function to use (see activations), or alternatively, elementwise Theano function. If you don't specify anything, no activation is applied (ie. "linear" activation: a(x) = x).
- weights: list of numpy arrays to set as initial weights.
- border_mode: 'valid' or 'same'.
- subsample: tuple of length 2. Factor by which to subsample output. Also called strides elsewhere.
- atrous_rate: tuple of length 2. Factor for kernel dilation. Also called filter_dilation elsewhere.
- W_regularizer: instance of WeightRegularizer (eg. L1 or L2 regularization), applied to the main weights matrix.
- b_regularizer: instance of WeightRegularizer, applied to the bias.
- activity_regularizer: instance of ActivityRegularizer, applied to the network output.
- W_constraint: instance of the constraints module (eg. maxnorm, nonneg), applied to the main weights matrix.
- b_constraint: instance of the constraints module, applied to the bias.
- dim_ordering: 'th' or 'tf'. In 'th' mode, the channels dimension
(the depth) is at index 1, in 'tf' mode is it at index 3.
It defaults to the
image_dim_ordering
value found in your Keras config file at~/.keras/keras.json
. If you never set it, then it will be "tf". - bias: whether to include a bias (i.e. make the layer affine rather than linear).
Input shape
4D tensor with shape:
(samples, channels, rows, cols)
if dim_ordering='th'
or 4D tensor with shape:
(samples, rows, cols, channels)
if dim_ordering='tf'.
Output shape
4D tensor with shape:
(samples, nb_filter, new_rows, new_cols)
if dim_ordering='th'
or 4D tensor with shape:
(samples, new_rows, new_cols, nb_filter)
if dim_ordering='tf'.
rows
and cols
values might have changed due to padding.
References
SeparableConvolution2D
keras.layers.convolutional.SeparableConvolution2D(nb_filter, nb_row, nb_col, init='glorot_uniform', activation='linear', weights=None, border_mode='valid', subsample=(1, 1), depth_multiplier=1, dim_ordering='default', depthwise_regularizer=None, pointwise_regularizer=None, b_regularizer=None, activity_regularizer=None, depthwise_constraint=None, pointwise_constraint=None, b_constraint=None, bias=True)
Separable convolution operator for 2D inputs.
Separable convolutions consist in first performing
a depthwise spatial convolution
(which acts on each input channel separately)
followed by a pointwise convolution which mixes together the resulting
output channels. The depth_multiplier
argument controls how many
output channels are generated per input channel in the depthwise step.
Intuitively, separable convolutions can be understood as a way to factorize a convolution kernel into two smaller kernels, or as an extreme version of an Inception block.
When using this layer as the first layer in a model,
provide the keyword argument input_shape
(tuple of integers, does not include the sample axis),
e.g. input_shape=(3, 128, 128)
for 128x128 RGB pictures.
Theano warning
This layer is only available with the TensorFlow backend for the time being.
Arguments
- nb_filter: Number of convolution filters to use.
- nb_row: Number of rows in the convolution kernel.
- nb_col: Number of columns in the convolution kernel.
- init: name of initialization function for the weights of the layer
(see initializations), or alternatively,
Theano function to use for weights initialization.
This parameter is only relevant if you don't pass
a
weights
argument. - activation: name of activation function to use (see activations), or alternatively, elementwise Theano function. If you don't specify anything, no activation is applied (ie. "linear" activation: a(x) = x).
- weights: list of numpy arrays to set as initial weights.
- border_mode: 'valid' or 'same'.
- subsample: tuple of length 2. Factor by which to subsample output. Also called strides elsewhere.
- depth_multiplier: how many output channel to use per input channel for the depthwise convolution step.
- depthwise_regularizer: instance of WeightRegularizer (eg. L1 or L2 regularization), applied to the depthwise weights matrix.
- pointwise_regularizer: instance of WeightRegularizer (eg. L1 or L2 regularization), applied to the pointwise weights matrix.
- b_regularizer: instance of WeightRegularizer, applied to the bias.
- activity_regularizer: instance of ActivityRegularizer, applied to the network output.
- depthwise_constraint: instance of the constraints module (eg. maxnorm, nonneg), applied to the depthwise weights matrix.
- pointwise_constraint: instance of the constraints module (eg. maxnorm, nonneg), applied to the pointwise weights matrix.
- b_constraint: instance of the constraints module, applied to the bias.
- dim_ordering: 'th' or 'tf'. In 'th' mode, the channels dimension
(the depth) is at index 1, in 'tf' mode is it at index 3.
It defaults to the
image_dim_ordering
value found in your Keras config file at~/.keras/keras.json
. If you never set it, then it will be "tf". - bias: whether to include a bias (i.e. make the layer affine rather than linear).
Input shape
4D tensor with shape:
(samples, channels, rows, cols)
if dim_ordering='th'
or 4D tensor with shape:
(samples, rows, cols, channels)
if dim_ordering='tf'.
Output shape
4D tensor with shape:
(samples, nb_filter, new_rows, new_cols)
if dim_ordering='th'
or 4D tensor with shape:
(samples, new_rows, new_cols, nb_filter)
if dim_ordering='tf'.
rows
and cols
values might have changed due to padding.
Deconvolution2D
keras.layers.convolutional.Deconvolution2D(nb_filter, nb_row, nb_col, output_shape, init='glorot_uniform', activation='linear', weights=None, border_mode='valid', subsample=(1, 1), dim_ordering='default', W_regularizer=None, b_regularizer=None, activity_regularizer=None, W_constraint=None, b_constraint=None, bias=True)
Transposed convolution operator for filtering windows of two-dimensional inputs. The need for transposed convolutions generally arises from the desire to use a transformation going in the opposite direction of a normal convolution, i.e., from something that has the shape of the output of some convolution to something that has the shape of its input while maintaining a connectivity pattern that is compatible with said convolution. [1]
When using this layer as the first layer in a model,
provide the keyword argument input_shape
(tuple of integers, does not include the sample axis),
e.g. input_shape=(3, 128, 128)
for 128x128 RGB pictures.
Examples
# apply a 3x3 transposed convolution with stride 1x1 and 3 output filters on a 12x12 image:
model = Sequential()
model.add(Deconvolution2D(3, 3, 3, output_shape=(None, 3, 14, 14), border_mode='valid', input_shape=(3, 12, 12)))
# output_shape will be (None, 3, 14, 14)
# apply a 3x3 transposed convolution with stride 2x2 and 3 output filters on a 12x12 image:
model = Sequential()
model.add(Deconvolution2D(3, 3, 3, output_shape=(None, 3, 25, 25), subsample=(2, 2), border_mode='valid', input_shape=(3, 12, 12)))
model.summary()
# output_shape will be (None, 3, 25, 25)
Arguments
- nb_filter: Number of transposed convolution filters to use.
- nb_row: Number of rows in the transposed convolution kernel.
- nb_col: Number of columns in the transposed convolution kernel.
- output_shape: Output shape of the transposed convolution operation.
tuple of integers (nb_samples, nb_filter, nb_output_rows, nb_output_cols)
Formula for calculation of the output shape [1], [2]:
o = s (i - 1) + a + k - 2p, \quad a \in {0, \ldots, s - 1}
- where: i - input size (rows or cols), k - kernel size (nb_filter), s - stride (subsample for rows or cols respectively), p - padding size, a - user-specified quantity used to distinguish between the s different possible output sizes.
- init: name of initialization function for the weights of the layer
(see initializations), or alternatively,
Theano function to use for weights initialization.
This parameter is only relevant if you don't pass
a
weights
argument. - activation: name of activation function to use (see activations), or alternatively, elementwise Theano/TensorFlow function. If you don't specify anything, no activation is applied (ie. "linear" activation: a(x) = x).
- weights: list of numpy arrays to set as initial weights.
- border_mode: 'valid' or 'same'.
- subsample: tuple of length 2. Factor by which to oversample output. Also called strides elsewhere.
- W_regularizer: instance of WeightRegularizer (eg. L1 or L2 regularization), applied to the main weights matrix.
- b_regularizer: instance of WeightRegularizer, applied to the bias.
- activity_regularizer: instance of ActivityRegularizer, applied to the network output.
- W_constraint: instance of the constraints module (eg. maxnorm, nonneg), applied to the main weights matrix.
- b_constraint: instance of the constraints module, applied to the bias.
- dim_ordering: 'th' or 'tf'. In 'th' mode, the channels dimension
(the depth) is at index 1, in 'tf' mode is it at index 3.
It defaults to the
image_dim_ordering
value found in your Keras config file at~/.keras/keras.json
. If you never set it, then it will be "tf". - bias: whether to include a bias (i.e. make the layer affine rather than linear).
Input shape
4D tensor with shape:
(samples, channels, rows, cols)
if dim_ordering='th'
or 4D tensor with shape:
(samples, rows, cols, channels)
if dim_ordering='tf'.
Output shape
4D tensor with shape:
(samples, nb_filter, new_rows, new_cols)
if dim_ordering='th'
or 4D tensor with shape:
(samples, new_rows, new_cols, nb_filter)
if dim_ordering='tf'.
rows
and cols
values might have changed due to padding.
References
[1] A guide to convolution arithmetic for deep learning [2] Transposed convolution arithmetic [3] Deconvolutional Networks
Convolution3D
keras.layers.convolutional.Convolution3D(nb_filter, kernel_dim1, kernel_dim2, kernel_dim3, init='glorot_uniform', activation='linear', weights=None, border_mode='valid', subsample=(1, 1, 1), dim_ordering='default', W_regularizer=None, b_regularizer=None, activity_regularizer=None, W_constraint=None, b_constraint=None, bias=True)
Convolution operator for filtering windows of three-dimensional inputs.
When using this layer as the first layer in a model,
provide the keyword argument input_shape
(tuple of integers, does not include the sample axis),
e.g. input_shape=(3, 10, 128, 128)
for 10 frames of 128x128 RGB pictures.
Arguments
- nb_filter: Number of convolution filters to use.
- kernel_dim1: Length of the first dimension in the convolution kernel.
- kernel_dim2: Length of the second dimension in the convolution kernel.
- kernel_dim3: Length of the third dimension in the convolution kernel.
- init: name of initialization function for the weights of the layer
(see initializations), or alternatively,
Theano function to use for weights initialization.
This parameter is only relevant if you don't pass
a
weights
argument. - activation: name of activation function to use (see activations), or alternatively, elementwise Theano function. If you don't specify anything, no activation is applied (ie. "linear" activation: a(x) = x).
- weights: list of Numpy arrays to set as initial weights.
- border_mode: 'valid' or 'same'.
- subsample: tuple of length 3. Factor by which to subsample output.
Also called strides elsewhere.
- Note: 'subsample' is implemented by slicing the output of conv3d with strides=(1,1,1).
- W_regularizer: instance of WeightRegularizer (eg. L1 or L2 regularization), applied to the main weights matrix.
- b_regularizer: instance of WeightRegularizer, applied to the bias.
- activity_regularizer: instance of ActivityRegularizer, applied to the network output.
- W_constraint: instance of the constraints module (eg. maxnorm, nonneg), applied to the main weights matrix.
- b_constraint: instance of the constraints module, applied to the bias.
- dim_ordering: 'th' or 'tf'. In 'th' mode, the channels dimension
(the depth) is at index 1, in 'tf' mode is it at index 4.
It defaults to the
image_dim_ordering
value found in your Keras config file at~/.keras/keras.json
. If you never set it, then it will be "tf". - bias: whether to include a bias (i.e. make the layer affine rather than linear).
Input shape
5D tensor with shape:
(samples, channels, conv_dim1, conv_dim2, conv_dim3)
if dim_ordering='th'
or 5D tensor with shape:
(samples, conv_dim1, conv_dim2, conv_dim3, channels)
if dim_ordering='tf'.
Output shape
5D tensor with shape:
(samples, nb_filter, new_conv_dim1, new_conv_dim2, new_conv_dim3)
if dim_ordering='th'
or 5D tensor with shape:
(samples, new_conv_dim1, new_conv_dim2, new_conv_dim3, nb_filter)
if dim_ordering='tf'.
new_conv_dim1
, new_conv_dim2
and new_conv_dim3
values might have changed due to padding.
Cropping1D
keras.layers.convolutional.Cropping1D(cropping=(1, 1))
Cropping layer for 1D input (e.g. temporal sequence). It crops along the time dimension (axis 1).
Arguments
- cropping: tuple of int (length 2) How many units should be trimmed off at the beginning and end of the cropping dimension (axis 1).
Input shape
3D tensor with shape (samples, axis_to_crop, features)
Output shape
3D tensor with shape (samples, cropped_axis, features)
Cropping2D
keras.layers.convolutional.Cropping2D(cropping=((0, 0), (0, 0)), dim_ordering='default')
Cropping layer for 2D input (e.g. picture). It crops along spatial dimensions, i.e. width and height.
Arguments
- cropping: tuple of tuple of int (length 2) How many units should be trimmed off at the beginning and end of the 2 cropping dimensions (width, height).
- dim_ordering: 'th' or 'tf'.
In 'th' mode, the channels dimension (the depth)
is at index 1, in 'tf' mode is it at index 3.
It defaults to the
image_dim_ordering
value found in your Keras config file at~/.keras/keras.json
. If you never set it, then it will be "tf".
Input shape
4D tensor with shape: (samples, depth, first_axis_to_crop, second_axis_to_crop)
Output shape
4D tensor with shape: (samples, depth, first_cropped_axis, second_cropped_axis)
Examples
# Crop the input 2D images or feature maps
model = Sequential()
model.add(Cropping2D(cropping=((2, 2), (4, 4)), input_shape=(3, 28, 28)))
# now model.output_shape == (None, 3, 24, 20)
model.add(Convolution2D(64, 3, 3, border_mode='same))
model.add(Cropping2D(cropping=((2, 2), (2, 2))))
# now model.output_shape == (None, 64, 20, 16)
Cropping3D
keras.layers.convolutional.Cropping3D(cropping=((1, 1), (1, 1), (1, 1)), dim_ordering='default')
Cropping layer for 3D data (e.g. spatial or saptio-temporal).
Arguments
- cropping: tuple of tuple of int (length 3) How many units should be trimmed off at the beginning and end of the 3 cropping dimensions (kernel_dim1, kernel_dim2, kernerl_dim3).
- dim_ordering: 'th' or 'tf'.
In 'th' mode, the channels dimension (the depth)
is at index 1, in 'tf' mode is it at index 4.
It defaults to the
image_dim_ordering
value found in your Keras config file at~/.keras/keras.json
. If you never set it, then it will be "tf".
Input shape
5D tensor with shape: (samples, depth, first_axis_to_crop, second_axis_to_crop, third_axis_to_crop)
Output shape
5D tensor with shape: (samples, depth, first_cropped_axis, second_cropped_axis, third_cropped_axis)
UpSampling1D
keras.layers.convolutional.UpSampling1D(length=2)
Repeat each temporal step length
times along the time axis.
Arguments
- length: integer. Upsampling factor.
Input shape
3D tensor with shape: (samples, steps, features)
.
Output shape
3D tensor with shape: (samples, upsampled_steps, features)
.
UpSampling2D
keras.layers.convolutional.UpSampling2D(size=(2, 2), dim_ordering='default')
Repeat the rows and columns of the data by size[0] and size[1] respectively.
Arguments
- size: tuple of 2 integers. The upsampling factors for rows and columns.
- dim_ordering: 'th' or 'tf'.
In 'th' mode, the channels dimension (the depth)
is at index 1, in 'tf' mode is it at index 3.
It defaults to the
image_dim_ordering
value found in your Keras config file at~/.keras/keras.json
. If you never set it, then it will be "tf".
Input shape
4D tensor with shape:
(samples, channels, rows, cols)
if dim_ordering='th'
or 4D tensor with shape:
(samples, rows, cols, channels)
if dim_ordering='tf'.
Output shape
4D tensor with shape:
(samples, channels, upsampled_rows, upsampled_cols)
if dim_ordering='th'
or 4D tensor with shape:
(samples, upsampled_rows, upsampled_cols, channels)
if dim_ordering='tf'.
UpSampling3D
keras.layers.convolutional.UpSampling3D(size=(2, 2, 2), dim_ordering='default')
Repeat the first, second and third dimension of the data by size[0], size[1] and size[2] respectively.
Arguments
- size: tuple of 3 integers. The upsampling factors for dim1, dim2 and dim3.
- dim_ordering: 'th' or 'tf'.
In 'th' mode, the channels dimension (the depth)
is at index 1, in 'tf' mode is it at index 4.
It defaults to the
image_dim_ordering
value found in your Keras config file at~/.keras/keras.json
. If you never set it, then it will be "tf".
Input shape
5D tensor with shape:
(samples, channels, dim1, dim2, dim3)
if dim_ordering='th'
or 5D tensor with shape:
(samples, dim1, dim2, dim3, channels)
if dim_ordering='tf'.
Output shape
5D tensor with shape:
(samples, channels, upsampled_dim1, upsampled_dim2, upsampled_dim3)
if dim_ordering='th'
or 5D tensor with shape:
(samples, upsampled_dim1, upsampled_dim2, upsampled_dim3, channels)
if dim_ordering='tf'.
ZeroPadding1D
keras.layers.convolutional.ZeroPadding1D(padding=1)
Zero-padding layer for 1D input (e.g. temporal sequence).
Arguments
- padding: int How many zeros to add at the beginning and end of the padding dimension (axis 1).
Input shape
3D tensor with shape (samples, axis_to_pad, features)
Output shape
3D tensor with shape (samples, padded_axis, features)
ZeroPadding2D
keras.layers.convolutional.ZeroPadding2D(padding=(1, 1), dim_ordering='default')
Zero-padding layer for 2D input (e.g. picture).
Arguments
- padding: tuple of int (length 2) How many zeros to add at the beginning and end of the 2 padding dimensions (axis 3 and 4).
- dim_ordering: 'th' or 'tf'.
In 'th' mode, the channels dimension (the depth)
is at index 1, in 'tf' mode is it at index 3.
It defaults to the
image_dim_ordering
value found in your Keras config file at~/.keras/keras.json
. If you never set it, then it will be "tf".
Input shape
4D tensor with shape: (samples, depth, first_axis_to_pad, second_axis_to_pad)
Output shape
4D tensor with shape: (samples, depth, first_padded_axis, second_padded_axis)
ZeroPadding3D
keras.layers.convolutional.ZeroPadding3D(padding=(1, 1, 1), dim_ordering='default')
Zero-padding layer for 3D data (spatial or spatio-temporal).
Arguments
- padding: tuple of int (length 3) How many zeros to add at the beginning and end of the 3 padding dimensions (axis 3, 4 and 5).
- dim_ordering: 'th' or 'tf'.
In 'th' mode, the channels dimension (the depth)
is at index 1, in 'tf' mode is it at index 4.
It defaults to the
image_dim_ordering
value found in your Keras config file at~/.keras/keras.json
. If you never set it, then it will be "tf".
Input shape
5D tensor with shape: (samples, depth, first_axis_to_pad, second_axis_to_pad, third_axis_to_pad)
Output shape
5D tensor with shape: (samples, depth, first_padded_axis, second_padded_axis, third_axis_to_pad)


VO-01: Read all page content
Confirm that the content on the page can be read and that the navigation and page content follow a logical reading order.
How to check: VO-01: Read all page content
- Press CTRL + OPTION + FN + Shift + Left Arrow to go to the top of the page
- Press CTRL + OPTION + A to read all content from current position
- Listen to all of the page content
What to check: VO-01: Read all page content
Confirm that:
- all content is read out correctly
- all content follows a logical reading order
- the context is consistent between what is visible and what is read out
- content is not repeated; unless the repeated content is intentional in the design
- icons are read out in a meaningful way
- images have meaningful alternative text
- content does not rely on sensory characteristics, for example: "On the left"
Observations: VO-01: Read all page content
[ Enter observations ]
VO-02: Rotor
Confirm rotor list is comprehensive.
How to check: VO-02: Rotor
- Press CTRL + OPTION + U to display the "Rotor"
- Press Right Arrow to navigate between sections"
- Navigate between the sections and check that what is on the page is reflected correctly
What to check: VO-02: Rotor
Confirm that for each element in each category, it is read our correctly and can be interacted with.
Observations: VO-02: Rotor
[ Enter observations ]
VO-03: Landmarks present
Confirm the page has semantic landmarks.
How to check: VO-03: Landmarks present
- Press CTRL + OPTION + U to display the "Rotor"
- Press Right Arrow to get to "Landmarks"
- Check each landmark in the list
What to check: VO-03: Landmarks present
Confirm that:
- landmarks make sense and their role is accurate.
- the page has a header landmark (banner).
- the page has a footer landmark (contentinfo).
- the page has a main landmark.
- any aside landmarks are not contained inside another top level landmark such as the main.
- any additional header and footers do not have the role of banner and contentinfo. For example an article header.
- regions have not been incorrectly used to contain content that should otherwise be inside a named landmark.
Observations: VO-03: Landmarks present
[ Enter observations ]
VO-04: Dynamic content
Pop-ups, modals and expanded sections should be announced. Anything which causes the page content to change without refreshing must be available to screenreader users.
How to check: VO-04: Dynamic content
- Activate the element which triggers the dynamic content to change
- Wait for the screen reader to finish talking
- Observe whether the changes were announced
What to check: VO-04: Dynamic content
Confirm that:
- when content changed dynamically the screenreader notifies you of changes
- the announcement is polite, and does not interrupt the screenreader unless it is an emergency
Observations: VO-04: Dynamic content
[ Enter observations ]
VO-05: Validation errors
When a form cannot be submitted due to validation errors, those errors should be announced to a screenreader. When a validation error appears on the page, make sure it is the next thing which is announced and make sure that it makes sense.
How to check: VO-05: Validation errors
- Fill in a form component incorrectly
- Progress until the validation error appears
- Once the error loads, wait for the screen reader to stop talking and observe whether it announced that there was an error
- Press CTRL + ALT + SHIFT + I to see if the title announces an error
- Press CTRL + ALT + CMD + J to move through the form fields and see if it obvious which field caused the error
- Observe whether the field which caused the error explains how to fix it
What to check: VO-05: Validation errors
Confirm that:
- when validation errors occur, the screenreader announced to the user that there is an error
- the title of the page changes to indicate there is an error, for example: Error: Your details
- it is clear from the screenreader which field caused the error and how to fix it
Observations: VO-05: Validation errors
[ Enter observations ]
VO-06: Page title is descriptive
The page title should describe the current page, the website name and if it is a sub-site it should contain the parent site. For example:
What is your name? - Apply for Universal Credit - GOV.UK
With the exception of a home page, the page title should match the H1. For example:
h1: What is your name?
title: What is your name? - Apply for Universal Credit - GOV.UK
If the H1 contains personal information, then the H1 should match as closely as possible. If the service is using analytics software, the page title will be sent and stored, so personally identifiable information should never be used in the page title. For example:
h1: What is John Smith's date of birth?
title: What is your partners date of birth?
How to check: VO-06: Page title is descriptive
- Press CTRL + OPTION + SHIFT + I to read out the page title
What to check: VO-06: Page title is descriptive
Confirm that:
- the page title describes the page
- the page title describes the website
- the page title does not contain personally identifiable information
- the page title and the h1 match (unless personally identifiable)
Observations: VO-06: Page title is descriptive
[ Enter observations ]
VO-07: Links make sense out of context
Every link should be predictable, even if the surrounding context is removed. No links should just say 'Read more' or 'click here'.
How to check: VO-07: Links make sense out of context
- Press CTRL + OPTION + U to open the Element list
- Navigate to the links list
- Check every link
What to check: VO-07: Links make sense out of context
Confirm that:
- all links make sense out of context
- all links work and their destination is expected
- no links have the same description but different destinations
Observations: VO-07: Links make sense out of context
[ Enter observations ]
VO-08: No automatic change of context
Unless there is a clear warning that the behaviour of an element has been modified, an element should not cause a change of context unless they receive deliberate input. For example: a form should not submit when you select a checkbox.
A change in context means the content you were reading or the task you were busy doing has changed. For example, clicking a link and changing the page.
How to check: VO-08: No automatic change of context
- Press CTRL + OPTION + FN + Shift + Left Arrow to go back to the top of the page
- Press tab to navigate through the interactive elements
- Press Arrow Keys to navigate through radios and checkboxes
What to check: VO-08: No automatic change of context
Confirm that one of the following is true:
- there is no change in context without using a link or a button
- there is a clear warning for any modifications which cause a change of context
Observations: VO-08: No automatic change of context
[ Enter observations ]
VO-09: Bypass blocks
Content which is repeated on multiple pages should have a mechanism which allows the user to skip past it. For example: a skip to main content link.
How to check: VO-09: Bypass blocks
- Press CTRL + OPTION + FN + Shift + Left Arrow to go to the top of the page
- Press tab and look for an element which skips over repetitive content such as navigation menus
What to check: VO-09: Bypass blocks
Confirm that:
- a skip link is present that links to the main content
- the skip link is the first interactive element on the page
- any other blocks of repetitive content are also skipped or have their own skip links
Observations: VO-09: Bypass blocks
[ Enter observations ]
VO-10: Navigate by landmarks
A user should be able to navigate the page by landmarks. For example, you should be able to jump between the header to the main content to the footer without having to go through all of the elements contained in each of those sections.
How to check: VO-10: Navigate by landmarks
- Press CTRL + OPTION + FN + Shift + Left Arrow to go back to the top of the page
- Press CTRL + OPTION + SHIFT + Right Arrow to move through each landmark
What to check: VO-10: Navigate by landmarks
Confirm that:
- you can navigate to every landmark on the page
- it is obvious which landmark is selected
- all landmarks are selected in a logical order
- all important content is contained within a landmark
Observations: VO-10: Navigate by landmarks
[ Enter observations ]
VO-11: Navigate by headings
A user should be able to navigate the page by headings.
How to check: VO-11: Navigate by headings
- Press CTRL + OPTION + FN + Shift + Left Arrow to navigate to the top of the page
- Press CTRL + OPTION + CMD + H to move through each of the headings on the page
What to check: VO-11: Navigate by headings
Confirm that:
- you can navigate to every heading on the page
- all headings are read out correctly
- all headings are selected in a logical order
- headings levels are correct, for example: a H3 relates to the previous H2
- any hidden headings relate to the content which follows it
Observations: VO-11: Navigate by headings
[ Enter observations ]
VO-12: Navigate by links
A user should be able to navigate the page by links.
How to check: VO-12: Navigate by links
- Press CTRL + OPTION + FN + Shift + Left Arrow to navigate to the top of the page
- Press CTRL + OPTION + CMD + L to move through each of the links on the page
What to check: VO-12: Navigate by links
Confirm that:: Navigate by links
- you can navigate to every link on the page
- all links are read out correctly
- all links are selected in a logical order
- no hidden links can be selected, skip links should appear when focussed
Observations: VO-12: Navigate by links
[ Enter observations ]
VO-13: Navigate by lists
A user should be able to navigate the page by lists.
How to check: VO-13: Navigate by lists
- Press CTRL + OPTION + FN + Shift + Left Arrow to navigate to the top of the page
- Press CTRL + OPTION + CMD + X to move through each of the lists on the page
What to check: VO-13: Navigate by lists
Confirm that:
- you can navigate to every list on the page
- all lists are read out correctly
- all lists are selected in a logical order
- any hidden lists add value and do not cause confusion
Observations: VO-13: Navigate by lists
[ Enter observations ]
VO-14: Navigate by form elements
A user should be able to navigate the page by form elements. This includes radio buttons, checkboxes, text fields etc.
How to check: VO-14: Navigate by form elements
- Press CTRL + OPTION + Shift + FN + Left Arrow to navigate to the top of the page
- Press CTRL + OPTION + CMD + J to move through each of the form elements on the page
What to check: VO-14: Navigate by form elements
Confirm that:
- you can navigate to every form element on the page
- all form elements are read out correctly
- all form elements are selected in a logical order
- no hidden form elements can be selected
Observations: VO-14: Navigate by form elements
[ Enter observations ]
VO-15: Navigate by tables
A user should be able to navigate the page by tables.
How to check: VO-15: Navigate by tables
- Press CTRL + OPTION + FN + Shift + Left Arrow to navigate to the top of the page
- Press CTRL + OPTION + CMD + T to move through each of the tables on the page
- Hold CTRL + OPTION and use Arrow Keys to navigate between the columns and rows
What to check: VO-15: Navigate by tables
Confirm that:
- you can navigate to every table on the page
- all tables are selected in a logical order
- all table headings are read out correctly
- table headings are read out for each cell in the table
- no hidden tables can be selected
Observations: VO-15: Navigate by tables
[ Enter observations ]


Customer Care
The DSTLD Client Support team is at your service. If at any time you have a question, concern, or would just like to give our brand some feedback, please do not hesitate to reach out.
Customer service hours:
Email: 6am-9pm PST Monday-Friday
Live chat: 7am-9pm PST Monday-Friday *chat hours may vary depending on volume
Text message: 1.213.785.3386 6am-9pm PST Monday-Friday
* Text message rates will apply
If you are an Investor or have questions about investing, please reach out to us at<EMAIL_ADDRESS>Hours: 10am-6pm PST Monday-Friday
Learn More about Returns/Exchanges


Fast Fourtier Transform
Problem
Given two vectors $a = (a_1, a_2, a_{n-1})$ and $b = (a_1, b_2, b_{n-1})$.
The convolution of a * b is a vector with 2n - 1 coordinates, where coordinate k is $\sum_{(i,j):i+j=k|i,j < n} a_ib_j$, which is can be written as
$$a ∗ b = (a_0b_0, a_0b_1 + a_1b_0, a_0b_2 + a_1b_1 + a_2b_0, … , a_{n−2}b_{n−1} + a_{n−1}b_{n−2}, a_{n−1}b_{n−1})$$
Or an n x n table, whose (i, j) entry is $a_ib_j$
\begin{bmatrix} a_0b_0 & a_0b_1 & … & a_0b_{n-2} & a_0b_{n-1}\newline a_1b_0 & a_1b_1 & … & a_2b_{n-2} & a_1b_{n-1}\newline a_2b_0 & a_2b_1 & … & a_2b_{n-2} & a_2b_{n-1}\newline … & … & … & … & … \newline a_{n-1}b_0 & a_{n-1}b_1 & … & a_{n-1}b_{n-2} & a_{n-1}b_{n-1} \end{bmatrix}
Then the convolution is suming along the diagonols. The motivation for convultion lies on the polynomial applications, signaling.
Extra notes
For example, we have a vector representing the measurement. We would like to smooth out the noise for each measurement $a_i$ with weighted sum of its left neighbors and right neighbors within k steps.
Algorithm
Preprocess:
- Choose 2n values $x_1, x_2, …, x_{2n}$, evaluate $A(x_j)$ and $B(x_j)$ for j=1 … 2n
- $C(x_j) = A(x_j)B(x_j)$
- Reconstruct $C(x_j)$ from its values on $x_1, x_2, …, x_{2n}$
The Complex Roots of Unity
Complex Number
A complex number can be represented in rectangular form as $z = x + iy$.
Or $z = r(cos\theta + isin\theta)$
Or in polar coordinate $z = re^{\theta i}$
Combine these, we get $e^{i\theta} = cos\theta + sin\theta$ Plug in $\theta = \pi$, we got $e^{i\pi} = -1$, which leads to the Euler’s identity $e^{i\pi} + 1 = 0$.
For each polynomial equation $x^k = 1$, the complex roots $\omega_{j,k} = e^{2\pi ji/k}$, since $(e^{2\pi ji/k})^k = e^{2\pi ji} = (e^{2\pi i})^j = 1 ^ j = 1$. We refer $\omega$ as the kth root of unity.
For k = 8, we got following
Step 1.
Going back to the evaluating A(x), let’s split A(x) into
$$A_{even}(x) = a_0 + a_2x + a_4x^2 + … + a_{n−2}x^{(n−2)/2}$$
and
$$A_{odd}(x) = a_1 + a_3x + a_5x^2 + … + a_{n−1}x^{(n−2)/2}$$
And $A(x) = A_{even}(x^2) + xA_{odd}(x^2)$
Step 2. Now considering we got the 2nth root of unity, $\omega_{j,2n} = e^{2\pi ji/2n}$, we can simply obtain the nth root by squaring the 2nth root, $\omega_{j,k}^2 = e^{2\pi ji/n}$. This only takes constant operation, so we got $$A(\omega_{j, 2n}) = A_{even}(\omega_{j, 2n}^2) + \omega_{j, 2n}A_{odd}(\omega_{j, 2n}^2)$$
Step 3. For $C(\omega_{j,n}) = A(\omega_{j,2n})B(\omega_{j,2n})$, it takes O(n) times. Reconstruction takes similar approach as before. Let’s define C(x) $C(x) = \sum_{s=0}^{2n-1} c_sx^s$, which we want to reconstruct from its values $C(\omega_{s,2n})$ at 2nth root of unity. Let’s define another $D(x) = \sum_{s=0}^{2n-1} d_sx^s$ where $d_s = C(\omega_{s,2n})$. Then,
\begin{align} D(\omega_{j,2n}) &= \sum_{s=0}^{2n - 1}C(\omega_{s,2n})\omega_{j,2n}^s \newline &= \sum_{s=0}^{2n - 1} (\sum_{t=0}^{2n - 1} c_t\omega_{s,2n}^t)\omega_{j,2n}^s \newline &= \sum_{t=0}^{2n - 1} c_t(\sum_{s=0}^{2n - 1} \omega_{s,2n}^t\omega_{j,2n}^s) \end{align}
Using the fact that $\omega_{s,2n} = (e^{2pii/2n})^s$, the above expression \begin{align} D(\omega_{j,2n}) &= \sum_{t=0}^{2n - 1} c_t(\sum_{s=0}^{2n - 1} e^{(2\pi i)(st+js)/2n}) \newline &= \sum_{t=0}^{2n - 1} c_t(\sum_{s=0}^{2n - 1} \omega_{t+j,2n}^s) \end{align}
In class
Finite Field $\mathbb{Z}_p$, where p is a prime $(\mathbb{Z}_p, +, 0)$, $(\mathbb{Z}_p^*, *, 1)$
$\mathbb{Z}_p^* = \{1, …, p-1\} = \{g^i$ and $p | i = 0, …, p-2\}$
$\forall$ prime p $\exists g$
$\mathbb{Z}_{257}^* = \{2^i | i = 0, …255\}$
$|\mathbb{Z}_{257}^*| = 256 = 2^8$
$o(g) = min\{i>0| g^i$ and $ p\}\bigg||\mathbb{Z}_p^*| = 256$


Comments
-
Greg Hurrell
Created an attachment (id=56) Crash report
-
Greg Hurrell
In order to analyze this further I need to know if you're running on PowerPC or Intel. The build number in your crash log for 10.4.6 doesn't match mine (PowerPC), so am I right in assuming you're on Intel?
-
Greg Hurrell
This one is potentially fixed by the changes that were made in order to fix bug #388 and bug #397. I suspect that the same underlying cause may have been at the root of it all. Will monitor this bug closely and see if is reproducible when the next version comes out (the version containing the fix for the aforementioned bugs).
To be informed when the next version comes out you can subscribe to the announcements mailing list:
-
Greg Hurrell
Not sure if this is a related crash or not. Just received a report that looks like this:
Thread 2 Crashed: 0 libSystem.B.dylib 0x90117ef8 localeconv_l + 24 1 libSystem.B.dylib 0x90010734 __vfprintf + 64 2 libSystem.B.dylib 0x900ed6a4 snprintf_l + 288 3 com.apple.CoreFoundation 0x907c95d4 _CFStringAppendFormatAndArgumentsAux + 2820 4 com.apple.CoreFoundation 0x907c8988 _CFStringCreateWithFormatAndArgumentsAux + 144 5 com.apple.Foundation 0x9295cabc -[NSPlaceholderString initWithFormat:locale:arguments:] + 140 6 com.apple.Foundation 0x9295ca10 +[NSString stringWithFormat:] + 72 7 SynergyAdvance 0xe10030f4 0xe1000000 + 12532 8 SynergyAdvance 0xe1002b44 0xe1000000 + 11076
[lots of stack frames, omitted]
507 SynergyAdvance 0xe1002724 0xe1000000 + 10020 508 SynergyAdvance 0xe1002724 0xe1000000 + 10020
Thread 3: 0 libSystem.B.dylib 0x9000b0a8 mach_msg_trap + 8 1 libSystem.B.dylib 0x9000affc mach_msg + 60 2 com.apple.CoreFoundation 0x907e3b78 __CFRunLoopRun + 832 3 com.apple.CoreFoundation 0x907e347c CFRunLoopRunSpecific + 268 4 com.wincent.WOBase 0xc801b3c4 0xc8000000 + 111556 5 com.apple.Foundation 0x92976194 forkThreadForFunction + 108 6 libSystem.B.dylib 0x9002ba68 _pthread_body + 96
And lots of threads like that...
Thread 60: 0 libSystem.B.dylib 0x9000b0a8 mach_msg_trap + 8 1 libSystem.B.dylib 0x9000affc mach_msg + 60 2 com.apple.CoreFoundation 0x907e3b78 __CFRunLoopRun + 832 3 com.apple.CoreFoundation 0x907e347c CFRunLoopRunSpecific + 268 4 com.wincent.WOBase 0xc80133d8 0xc8000000 + 78808 5 com.apple.Foundation 0x92976194 forkThreadForFunction + 108 6 libSystem.B.dylib 0x9002ba68 _pthread_body + 96
Will attach full report.
-
Greg Hurrell
Created an attachment (id=68) new crash report, ppc
-
Greg Hurrell
Changing assignment to reflect my new email address.
http://wincent.com/a/news/archives/2006/05/change_of_email.php
-
Greg Hurrell
See also bug #461, which is a different crash but also exhibits the general "too many threads" behaviour.
-
Greg Hurrell
See also bug #525; user submitted an unrelated crash report, but the number of threads still seems too high (27).
-
Greg Hurrell
Created an attachment (id=93) PPC crashlog
-
Greg Hurrell
Created an attachment (id=94) i386 crashlog
Add a comment
Comments are now closed for this issue.


"slib/array.scm" synthesizes array ideas from Common-Lisp and Alan Bawden with homogeneous vector ideas from SRFI-4 and SCM. The result portably integrates homogeneous and heterogeneous arrays into Scheme.


Over the past couple of years my thoughts on traditional education have been challenged for myself as well as my children. The DBC/EDA experience feels like an organic process and a natural way to learn and help others. I like the sense of community and the important that is placed on values.
I’m here to expose my ignorance! I feel extremely vulnerable as discussed in Shereef’s video. I really think that I am way behind on the technical skills compared to other cohort members but I’m trying my best not to compare myself to anyone else. I am here to learn and give as much as I can and enjoy the journey (the good and the bad).
I honestly think I might be crazy! Trying to study in a bootcamp style with 2 children and coming into the Christmas holidays? Who does that? I know It’s not going to be easy (at least for me anyway). I am well and truly outside of my comfort zone! But all the best things in my experiences have all happened when I took some risks and stepped out of my comfort zone so I’m hoping this will be one of those experiences I can add to the memory bank too.
I’m really looking forward to the experience and being immersed in the EDA culture for the next 18 weeks. I grew up playing a lot of sports and have always worked in team environments. I enjoy working in teams but do also enjoy my alone time. I am looking forward to getting to know other cohort members and working together.
Yes! Even though I knew EDA was not a traditional school with traditional teachers and learning techniques, after the first week I really understand that my success at EDA is in my hands (not my teachers). It’s my responsibility to do the work, learn the material and ask for help when needed (something I’m not really good at).
I’m excited to participate in this kind of learning environment. I’m also super nervous at the same time.


I've read and researched a great deal on the experiences obtained with the use of Absinthe. Most, it appears, seem to have originated from the feeble mindset of the Prohibitionist who declared the substance to be illegal a century ago. The exaggerations of lunacy and homicidal tendencies are trademarks of these stories. Nonetheless, I developed an interest in the production and certain consumption of the liquid as I continued my research. One night I stumbled upon several recipes for Absinthe and decided to give it a shot. I was wanting to experience what the poets of old had experienced and to verify the mad ramblings of the prohibitionist were incorrect.
After adding the wormwood and other ingredients, allowing it to set for a week, I mixed roughly four ounces of the liquid into a couple ounces of Sour mix and floated it with OJ in order to offset the bitter (yet tollerable) taste of the Absinthe. I had drunk nothing previously that day and had little on my stomach so that I could better differentiate the effects of the wormwood from that of the vodka into which it diffused it's essence.
20 minutes after ingesting the mixed drink, I began to experience a sense of euphoria beginning in the back of my head and 'washing' down my body to my feet. It was warm and although the effects were blissful, there was no compromising of my equilibrium. My body felt light (or a 'body buzz', somewhat like the effects of hallucinogens before the 'trip') and the sensation of inspiration noted by the poets was experienced. My body was warm and comfortable and the overall effects were obviously not from the alcohol percentage of the vodka.
Although the effects were relatively shortlived, I look forward to more experiences with this green ambrosia throughout my life. A danger? A life-threatening concoction brewing insanity? Both accusations are best labeled to those who speak them.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Dashboard dashboard & statistics
Revenue:
$13,234
Tax:
$134,900
Shipment:
$1,134
Orders:
235090
-
You have 4 pending tasks. Take actionJust now
-
Finance Report for year 2013 has been released.20 mins
-
You have 5 pending membership that requires a quick review.24 mins
-
New order received with Reference Number: DR2392330 mins
-
You have 5 pending membership that requires a quick review.24 mins
-
Web server hardware needs to be upgraded. Overdue2 hours
-
IPO Report for year 2013 has been released.20 mins
-
You have 4 pending tasks. Take actionJust now
-
Finance Report for year 2013 has been released.20 mins
-
You have 5 pending membership that requires a quick review.24 mins
-
New order received with Reference Number: DR2392330 mins
-
You have 5 pending membership that requires a quick review.24 mins
-
Web server hardware needs to be upgraded. Overdue2 hours
-
IPO Report for year 2013 has been released.20 mins


Company Name:
First Name:
Last Name:
Email Address:
Title:
Phone:
Cancel Registration:
252 Training Session 2021:
Job Function:
Dietary Requirements:
Expectations:
Okay!
Company Name:
First Name:
Last Name:
Email Address:
Title:
Phone:
Cancel Registration:
252 Training Session 2021:
-Select a date-
Ayşegül Topyürek
Job Function:
Campaign Management
CRM Administration
Email Deployment
Partner
Employee
Dietary Requirements:
Expectations:
Submit


This application is freeware - you get what you pay for, nothing more, nothing less.
The full source code (C++) is available from my web site listed below.
The "Help | About" dialog also contains my contact details. Please check the web site for updates.
Email<EMAIL_ADDRESS>Web: www.cix.co.uk/~gort
Chris Oldwood
21st October 2008


All of the methods that modify preference data are permitted to operate asynchronously. They may return immediately, and changes will eventually propagate to the persistent backing store. The flush method can be used to force updates to the backing store.
The methods in the Preferences class may be invoked concurrently by multiple threads in a single JVM without the need for external synchronization, and the results will be equivalent to some serial execution. If this class is used concurrently by multiple JVMs that store their preference data in the same backing store, the data store will not be corrupted, but no other guarantees are made concerning the consistency of the preference data.
For more details, choose from the following links:
Prior to the introduction of the Preferences API, developers could choose to manage preference and configuration data in an ad hoc fashion, by using the Properties API or the JNDI API as described below.
Often, preference and configuration data was stored in properties files, accessed through the java.util.Properties API. However, there are no standards as to where such files should reside on disk, or what they should be called. Using this mechanism, it is extremely difficult to backup a user's preference data, or transfer it from one machine to another. As the number of applications increases, the possibility of file name conflicts increases. Also, this mechanism is of no help on platforms that lack a local disk, or where it is desirable that the data be stored in an external data store (such as an enterprise-wide LDAP directory service).
Less frequently, developers stored user preference and configuration data in a directory service, accessed through the Java Naming and Directory Interface (JNDI) API. Unlike the Properties API, JNDI allows the use of arbitrary data stores (back-end neutrality). While JNDI is extremely powerful, it is also rather large, consisting of 5 packages and 83 classes. JNDI provides no policy as to where in the directory name space the preference data should be stored, or in which name space.
Neither Properties nor JNDI provide a simple, ubiquitous, back-end neutral preferences management facility. The Preferences API does provide such a facility, combining the simplicity of Properties with the back-end neutrality of JNDI. It provides sufficient built-in policy to prevent name clashes, foster consistency, and encourage robustness in the face of inaccessibility of the backing data store.
The material contained in this section is not part of the Preferences API specification, instead it is intended to provide some examples of how the Preferences API might be used.
The following examples illustrate how you might obtain the Preferences objects (system and user) pertaining to the enclosing class. These examples would work only inside instance methods.
Note that static final fields, rather than inline String
literals, are used for the key names (NUM_ROWS
and
NUM_COLS
). This reduces the likelihood of runtime bugs
from typographical errors in key names.
Note also that reasonable defaults are provided for each of the preference values obtained. These defaults will be returned if no preference value has been set, or if the backing store is inaccessible.
package com.acme.widget; import java.util.prefs.*; public class Gadget { // Preference keys for this package private static final String NUM_ROWS = "num_rows"; private static final String NUM_COLS = "num_cols"; void foo() { Preferences prefs = Preferences.userNodeForPackage(Gadget.class); int numRows = prefs.getInt(NUM_ROWS, 40); int numCols = prefs.getInt(NUM_COLS, 80); ... } }
The above example obtains per-user preferences. If a single,
per-system value were desired, the first line in foo
would be replaced by:
Preferences prefs = Preferences.systemNodeForPackage(Gadget.class);
The examples in the prior section illustrate obtaining Preferences objects pertaining to the enclosing class, and work inside instance methods. In a static method (or static initializer), you need to explicitly provide the name of the package:
Static String ourNodeName = "/com/acme/widget"; static void foo() { Preferences prefs = Preferences.userRoot().node(ourNodeName); ... }
It is always acceptable to obtain a system preferences object once, in a static initializer, and use it whenever system preferences are required:
static Preferences prefs = Preferences.systemRoot().node(ourNodeName);
In general, it is acceptable to do the same thing for a user
preferences object, but not if the code in question is to be used
in a server, wherein multiple users will be running concurrently or
serially. In such a system, userNodeForPackage
and
userRoot
will return the appropriate node for the
calling user, thus it's critical that calls to
userNodeForPackage
or userRoot
be made
from the appropriate thread at the appropriate time. If a piece of
code may eventually be used in such a server environment, it is
good, conservative practice to obtain user preferences objects
immediately before they are used, as in the prior example.
The preferences API does not provide database like "transactions" wherein multiple preferences are modified atomically. Occasionally, it is necessary to modify two or more preferences as a unit. For example, suppose you are storing the x and y coordinates where a window is to be placed. The only way to achieve atomicity is to store both values in a single preference. Many encodings are possible. Here's a simple one:
int x, y; ... prefs.put(POSITION, x + "," + y);
When such a "compound preference" is read, it must be decoded. For robustness, allowances should be made for a corrupt (unparseable) value:
static int X_DEFAULT = 50, Y_DEFAULT = 25; void baz() { String position = prefs.get(POSITION, X_DEFAULT + "," + Y_DEFAULT); int x, y; try { int i = position.indexOf(','); x = Integer.parseInt(coordinates.substring(0, i)); y = Integer.parseInt(position.substring(i + 1)); } catch(Exception e) { // Value was corrupt, just use defaults x = X_DEFAULT; y = Y_DEFAULT; } ... }
Typical application code has no need to know whether the backing store is available. It should almost always be available, but if it isn't, the code should continue to execute using default values in place of preference values from the backing store. Very rarely, some advanced program might want to vary its behavior (or simply refuse to run) if the backing store were unavailable. Following is a method that determines whether the backing store is available by attempting to modify a preference value and flush the result to the backing store.
private static final String BACKING_STORE_AVAIL = "BackingStoreAvail"; private static boolean backingStoreAvailable() { Preferences prefs = Preferences.userRoot().node("<temporary>"); try { boolean oldValue = prefs.getBoolean(BACKING_STORE_AVAIL, false); prefs.putBoolean(BACKING_STORE_AVAIL, !oldValue); prefs.flush(); } catch(BackingStoreException e) { return false; } return true; }


Search Inside Yourself - Chapter 2
18 December 2016
How did the 'process over product' concept affect the way you tackled the site redesign and rebuild?
Overall I found the process to be good, but challenging in that at times I wanted to focus more on the product. However, one of the things I struggle with is actually designing a site and so I found this process to be a great starting point. Going through the sprint material helped provide context around things such as why you should take a mobile first approach, and what sort of things you should think about when designing a site. I think its good to get into the mindset of focusing on the process and so as to ensure you can produce a well thought out product.
What did you think about meditation before reading chapter 2?
I have been trying meditation in the week or so prior to reading this chapter, so I had a basic understanding of meditation, how you go about it and some of its benefits. This chapter I felt more reinforced what (little!) I already know about meditation.
What new things have you learnt about meditation?
I found the concept that meditation is a bit like riding a bicycle quite interesting. When riding a bike you are constantly making small, quick micro-adjustments to stay balanced and upright, meditation is similar in that it helps to train your brain's meta-attention - that is your brain's ability to quickly recover from wandering attention and focus on the task at hand. I also found interesting the "happiness is the default state of mind" concept, where your default state is to be happy when you mind is calm and clear.
Did any of the suggested meditation techniques stand out to you?
I think the 4 step plan of working through distractions is going to be useful, since distractions are constant when trying to meditate. That is when you are distracted, trying to follow the following steps:
- Acknowledge.
- Experience without judging or reacting.
- If you need to react, contine maintaining mindfulness.
- Let it go.


Sound system adjustment is a young science still in development. In this project, we have carried out a research from a subjective point of view for delay towers adjustment. The importance of this project is based on the use of the Haas effect values as a reference to the values of the adjustment.
Usually in live concerts the sound systems counts with delay towers in order to improve the coverage area, and a distributed sound. If we have speakers in all the audience we will enhace intelligibility without having the main speakers with an extra loudness, which implies that people in the first row have too much volume, and people in the last rows cannot hear the concert. This is called distributed system
Adjusting the delay and the volume we can tune delay towers, in my final grade work, I have made a subjetive poll with different presets trying to find some pattern to adjust this parameters.


The program is tentative and may undergo changes. The majority of the time will be spent working in small groups, discussing specific topics or sets of open problems.
All times are British Summer Time (BST).
The program is tentative and may undergo changes. The majority of the time will be spent working in small groups, discussing specific topics or sets of open problems.
All times are British Summer Time (BST).
| Wednesday, 21 April | ||
| 11:00–11:15 | Welcome and opening remarks | |
| 11:15–12:15 | Unifying keynote talk: Automata for Profit and Pleasure + Q&A Sven Schewe | |
| 12:30–14:00 | Lunch break | |
| 14:30–15:15 | Introduction of participants | |
| 15:15–16:00 | Talk: Data-driven Learning for Verification and Control
+ Q&A Alessandro Abate | |
| 16:00–16:30 | Break | |
| 16:30–17:15 | Talk: Pareto analysis and approximation in stochastic and timed systems + Q&A Mahsa Shirmohammadi | |
| 17:15–18:00 | Open problems session | |
| Thursday, 22 April | ||
| 9:30–10:15 | Talk: Program synthesis and applications to cyber-physical systems + Q&A Cristina David | |
| 10:15–11:00 | Talk:Trusted Autonomous Systems: Verification Meets Falsification + Q&A Sergiy Bogomolov | |
| 11:00–11:30 | Break | |
| 11:30–12:15 | Open problems session and forming working groups | |
| 12:30–14:00 | Lunch break | |
| 14:30–16:00 | Discussion in working groups | |
| 16:00–16:30 | Break | |
| 16:30–18:00 | Discussion in working groups | |
| Friday, 23 April | ||
| 9:30–11:00 | Discussion in working groups | |
| 11:00–11:30 | Break | |
| 11:30–12:15 | Discussion in working groups | |
| 12:30–14:00 | Lunch break | |
| 14:30–16:00 | Discussion in working groups | |
| 16:00–16:30 | Conclusion and outlook |


Insult A Friend
NSFW Insults
Insult!
Copyright (c) 2021 CoolStone Studios. This is open-sourced and available on
Github


The mission of the Diversity Committee of the United States PostgreSQL Association is to promote an inclusive environment in the PostgreSQL community through outreach programs and the support of educational endeavors for underrepresented PostgreSQL users in the United States.
Current members of the United States PostgreSQL Association are encouraged to participate in the further development and growth of the Association through committee participation. Interested members should send their intent to<EMAIL_ADDRESS>for consideration.
At the end of 2015, the United States PostgreSQL Association unanimously passed a resolution ear-marking $10,000 of funds for our Diversity Scholarship. Since then, the Diversity Committee (comprised of Sarah Conway, Evan Macbeth and Quan-Ha Le) have been working to create guidelines around what would be a beneficial program for the PostgreSQL community.
We are pleased to announce the application for the Diversity Scholarship is open and available for submissions.
You can apply to have some or all of your conference attendance costs (registration, hotel, airfare) covered. Just like submitting a talk, details count! Your application should include specifics of how attending the event will benefit you, and how you plan to share the benefit with others in the community.
The decision making process will be ranked on 1 (low) to 5 (high) in the following areas:
Each committee member will score applications in random order, without knowing other committee members' scores.
The Diversity Committee would like to thank our friends and members of the Django community for allowing us to review and borrow from their program.


Go to the first, previous, next, last section, table of contents.
Changes made to recent versions of GNU Fortran are listed below, with the most recent version first.
The changes are generally listed in order:
This order is not strict--for example, some items involve a combination of these elements.
Note that two variants of g77
are tracked below.
The egcs
variant is described vis-a-vis
previous versions of egcs
and/or
an official FSF version,
as appropriate.
Therefore, egcs
versions sometimes have multiple listings
to help clarify how they differ from other versions,
though this can make getting a complete picture
of what a particular egcs
version contains
somewhat more difficult.
For information on bugs in the GCC-2.95 version of g77
,
see section Known Bugs In GNU Fortran.
An online, "live" version of this document
(derived directly from the mainline, development version
of g77
within egcs
)
is available at
http://egcs.cygnus.com/onlinedocs/g77_news.html.
The following information was last updated on 1999-07-08:
GCC
2.95 (EGCS
1.2) versus EGCS
1.1.2:g77
no longer generates bad code for assignments,
or other conversions,
of REAL
or COMPLEX
constant expressions
to type INTEGER(KIND=2)
(often referred to as INTEGER*8
).
For example, `INTEGER*8 J; J = 4E10' now works as documented.
g77
no longer truncates INTEGER(KIND=2)
(usually INTEGER*8
)
subscript expressions when evaluating array references
on systems with pointers widers than INTEGER(KIND=1)
(such as Alphas).
g77
no longer generates bad code
for an assignment to a COMPLEX
variable or array
that partially overlaps one or more of the sources
of the same assignment
(a very rare construction).
It now assigns through a temporary,
in cases where such partial overlap is deemed possible.
libg2c
(libf2c
) no longer loses track
of the file being worked on
during a BACKSPACE
operation.
libg2c
(libf2c
) fixes a bug whereby
input to a NAMELIST
read involving a repeat count,
such as `K(5)=10*3',
was not properly handled by libf2c
.
The first item was written to `K(5)',
but the remaining nine were written elsewhere (still within the array),
not necessarily starting at `K(6)'.
Date
intrinsic now returns the correct result
on big-endian systems.
g77
so it no longer crashes when compiling
I/O statements using keywords that define INTEGER
values,
such as `IOSTAT=j',
where j is other than default INTEGER
(such as INTEGER*2
).
Instead, it issues a diagnostic.
g77
so it properly handles `DATA A/rpt*val/',
where rpt is not default INTEGER
, such as INTEGER*2
,
instead of producing a spurious diagnostic.
Also fix `DATA (A(I),I=1,N)',
where `N' is not default INTEGER
to work instead of crashing g77
.
g77
to compile run-time bounds checks
of array subscripts, as well as of substring start and end points.
libg2c
now supports building as multilibbed library,
which provides better support for systems
that require options such as `-mieee'
to work properly.
g77
as if they ended in `.for' and `.fpp', respectively.
CTime
, DTime
, ETime
, and TtyNam
intrinsics has been swapped.
The argument serving as the returned value
for the corresponding function forms
now is the second argument,
making these consistent with the other subroutine forms
of libU77
intrinsics.
g77
now warns about a reference to an intrinsic
that has an interface that is not Year 2000 (Y2K) compliant.
Also, libg2c
has been changed to increase the likelihood
of catching references to the implementations of these intrinsics
using the EXTERNAL
mechanism
(which would avoid the new warnings).
See section Year 2000 (Y2K) Problems, for more information.
g77
now warns about a reference to a function
when the corresponding subsequent function program unit
disagrees with the reference concerning the type of the function.
COMPLEX
data type.
g77
reliably aligns local double-precision variables
that are not in EQUIVALENCE
areas
and not SAVE
'd.
g77
now open-codes ("inlines") division of COMPLEX
operands
instead of generating a run-time call to
the libf2c
routines c_div
or z_div
,
unless the `-Os' option is specified.
g77
no longer generates code to maintain errno
,
a C-language concept,
when performing operations such as the SqRt
intrinsic.
g77
developers can temporarily use
the `-fflatten-arrays' option
to compare how the compiler handles code generation
using C-like constructs as compared to the
Fortran-like method constructs normally used.
g77
front end's code-generation component
was rewritten.
It now generates code using facilities more robustly supported
by the gcc
back end.
One effect of this rewrite is that some codes no longer produce
a spurious "label lab used before containing binding contour"
message.
libf2c
as of 1999-05-10.
There is no g77
version 0.5.24 at this time,
or planned.
0.5.24 is the version number designated for bug fixes and,
perhaps, some new features added,
to 0.5.23.
Version 0.5.23 requires gcc
2.8.1,
as 0.5.24 was planned to require.
Due to EGCS
becoming GCC
(which is now an acronym for "GNU Compiler Collection"),
and EGCS
1.2 becoming officially designated GCC
2.95,
there seems to be no need for an actual 0.5.24 release.
To reduce the confusion already resulting from use of 0.5.24
to designate g77
versions within EGCS
versions 1.0 and 1.1,
as well as in versions of g77
documentation and notices
during that period,
"mainline" g77
version numbering resumes
at 0.5.25 with GCC
2.95 (EGCS
1.2),
skipping over 0.5.24 as a placeholder version number.
To repeat, there is no g77
0.5.24, but there is now a 0.5.25.
Please remain calm and return to your keypunch units.
EGCS
1.1.2 versus EGCS
1.1.1:IDate
intrinsic (VXT) (in libg2c
)
so the returned year is in the documented, non-Y2K-compliant range
of 0-99,
instead of being returned as 100 in the year 2000.
See section IDate Intrinsic (VXT),
for more information.
Date_and_Time
intrinsic (in libg2c
)
to return the milliseconds value properly
in Values(8).
LStat
intrinsic (in libg2c
)
to return device-ID information properly
in SArray(7).
EGCS
1.1.1 versus EGCS
1.1:libg2c
so it performs an implicit ENDFILE
operation
(as appropriate)
whenever a REWIND
is done.
(This bug was introduced in 0.5.23 and egcs
1.1 in
g77
's version of libf2c
.)
libg2c
so it no longer crashes with a spurious diagnostic
upon doing any I/O following a direct formatted write.
(This bug was introduced in 0.5.23 and egcs
1.1 in
g77
's version of libf2c
.)
g77
so it no longer crashes compiling references
to the Rand
intrinsic on some systems.
g77
portion of installation process so it works
better on some systems
(those with shells requiring `else true' clauses
on if
constructs
for the completion code to be set properly).
EGCS
1.1 versus EGCS
1.0.3:libU77
intrinsic HostNm
that wrote one byte beyond the end of its CHARACTER
argument,
and in the libU77
intrinsics
GMTime
and LTime
that overwrote their arguments.
g77
,
even on systems with pointers having
different sizes than integers.
This bug is not known to have existed in any
recent version of gcc
.
It was introduced in an early release of egcs
.
EXTERNAL
,
passing that external as a dummy argument
without explicitly giving it a type,
and, in a subsequent program unit,
referencing that external as
an external function with a different type
no longer crash g77
.
CASE DEFAULT
no longer crashes g77
.
g77
for procedures containing ENTRY
statements.
INTEGER
expression.
g77
`-g' option so procedures that
use ENTRY
can be stepped through, line by line,
in gdb
.
REAL
argument to intrinsics
Second
and CPU_Time
.
tempnam
, if available, to open scratch files
(as in `OPEN(STATUS='SCRATCH')')
so that the TMPDIR
environment variable,
if present, is used.
g77
's version of libf2c
separates out
the setting of global state
(such as command-line arguments and signal handling)
from `main.o' into distinct, new library
archive members.
This should make it easier to write portable applications
that have their own (non-Fortran) main()
routine
properly set up the libf2c
environment, even
when libf2c
(now libg2c
) is a shared library.
g77
no longer installs the `f77' command
and `f77.1' man page
in the `/usr' or `/usr/local' heirarchy,
even if the `f77-install-ok' file exists
in the source or build directory.
See the installation documentation for more information.
g77
no longer installs the `libf2c.a' library
and `f2c.h' include file
in the `/usr' or `/usr/local' heirarchy,
even if the `f2c-install-ok' or `f2c-exists-ok' files exist
in the source or build directory.
See the installation documentation for more information.
g77
has been
renamed to `libg2c.a'.
It is installed only in the gcc
"private"
directory heirarchy, `gcc-lib'.
This allows system administrators and users to choose which
version of the libf2c
library from netlib
they
wish to use on a case-by-case basis.
See the installation documentation for more information.
g77
has been renamed to `g2c.h'.
It is installed only in the gcc
"private"
directory heirarchy, `gcc-lib'.
This allows system administrators and users to choose which
version of the include file from netlib
they
wish to use on a case-by-case basis.
See the installation documentation for more information.
g77
command now expects the run-time library
to be named libg2c.a
instead of libf2c.a
,
to ensure that a version other than the one built and
installed as part of the same g77
version is picked up.
g77
creates subdirectories it needs only as it
needs them.
Other cleaning up of the configuration and build process
has been performed as well.
install-info
now used to update the directory of
Info documentation to contain an entry for g77
(during installation).
OPEN
, INQUIRE
, READ
, and
WRITE
statements,
and about truncations of various sorts of constants.
FORMAT
expressions so that
a null byte is appended to the last operand if it
is a constant.
This provides a cleaner run-time diagnostic as provided
by libf2c
for statements like `PRINT '(I1', 42'.
libf2c
as of 1998-06-18
should fix a variety of problems, including
those involving some uses of the T
format
specifier, and perhaps some build (porting) problems
as well.
EGCS
1.1 versus g77
0.5.23:DNRM2
routine.
The x87 coprocessor stack was being
mismanaged in cases involving assigned GOTO
and ASSIGN
.
g77
no longer produces incorrect code
and initial values
for EQUIVALENCE
and COMMON
aggregates that, due to "unnatural" ordering of members
vis-a-vis their types, require initial padding.
g77
crash compiling code
containing the construct `CMPLX(0.)' or similar.
g77
no longer crashes when compiling code
containing specification statements such as
`INTEGER(KIND=7) PTR'.
g77
no longer crashes when compiling code
such as `J = SIGNAL(1, 2)'.
g77
now treats `%LOC(expr)' and
`LOC(expr)' as "ordinary" expressions
when they are used as arguments in procedure calls.
This change applies only to global (filewide) analysis,
making it consistent with
how g77
actually generates code
for these cases.
Previously, g77
treated these expressions
as denoting special "pointer" arguments
for the purposes of filewide analysis.
g77
crash
(or apparently infinite run-time)
when compiling certain complicated expressions
involving COMPLEX
arithmetic
(especially multiplication).
SAVE
attribute
or given initial values via DATA
.
g77
driver now ensures that `-lg2c'
is specified in the link phase prior to any
occurrence of `-lm'.
This prevents accidentally linking to a routine
in the SunOS4 `-lm' library
when the generated code wants to link to the one
in libf2c
(libg2c
).
g77
emits more debugging information when
`-g' is used.
This new information allows, for example,
which __g77_length_a to be used in gdb
to determine the type of the phantom length argument
supplied with CHARACTER
variables.
This information pertains to internally-generated
type, variable, and other information,
not to the longstanding deficiencies vis-a-vis
COMMON
and EQUIVALENCE
.
Date_and_Time
intrinsic now is
supported.
System_Clock
intrinsic allows
the optional arguments (except for the Count
argument) to be omitted.
libf2c
as of 1998-06-18.
g77
, due to using the
"vanilla" gcc
back end instead of patching
it to fix a few bugs and improve performance in a
few cases.
Features that have been dropped from this version
of g77
due to their being implemented
via g77
-specific patches to the gcc
back end in previous releases include:
__restrict__
keyword,
the options `-fargument-alias', `-fargument-noalias',
and `-fargument-noalias-global',
and the corresponding alias-analysis code.
(egcs
has the alias-analysis
code, but not the __restrict__
keyword.
egcs
g77
users benefit from the alias-analysis
code despite the lack of the __restrict__
keyword,
which is a C-language construct.)
egcs
supports these options.
g77
users of egcs
benefit from them even if
they are not explicitly specified,
because the defaults are optimized for g77
users.)
g77
no longer
including patches for the gcc
back end.
libU77
intrinsic HostNm
that wrote one byte beyond the end of its CHARACTER
argument,
and in the libU77
intrinsics
GMTime
and LTime
that overwrote their arguments.
gcc
version 2.8,
and remove support for prior versions of gcc
.
g77
now does all the driving,
just like gcc
.
CASE DEFAULT
no longer crashes g77
.
EXTERNAL
,
passing that external as a dummy argument
without explicitly giving it a type,
and, in a subsequent program unit,
referencing that external as
an external function with a different type
no longer crash g77
.
g77
no longer installs the `f77' command
and `f77.1' man page
in the `/usr' or `/usr/local' heirarchy,
even if the `f77-install-ok' file exists
in the source or build directory.
See the installation documentation for more information.
g77
no longer installs the `libf2c.a' library
and `f2c.h' include file
in the `/usr' or `/usr/local' heirarchy,
even if the `f2c-install-ok' or `f2c-exists-ok' files exist
in the source or build directory.
See the installation documentation for more information.
g77
has been
renamed to `libg2c.a'.
It is installed only in the gcc
"private"
directory heirarchy, `gcc-lib'.
This allows system administrators and users to choose which
version of the libf2c
library from netlib
they
wish to use on a case-by-case basis.
See the installation documentation for more information.
g77
has been renamed to `g2c.h'.
It is installed only in the gcc
"private"
directory heirarchy, `gcc-lib'.
This allows system administrators and users to choose which
version of the include file from netlib
they
wish to use on a case-by-case basis.
See the installation documentation for more information.
g77
command now expects the run-time library
to be named libg2c.a
instead of libf2c.a
,
to ensure that a version other than the one built and
installed as part of the same g77
version is picked up.
g77
for procedures containing ENTRY
statements.
g77
's version of libf2c
separates out
the setting of global state
(such as command-line arguments and signal handling)
from `main.o' into distinct, new library
archive members.
This should make it easier to write portable applications
that have their own (non-Fortran) main()
routine
properly set up the libf2c
environment, even
when libf2c
(now libg2c
) is a shared library.
g77
creates subdirectories it needs only as it
needs them, thus avoiding unnecessary creation of, for example,
`stage1/f/runtime' when doing a non-bootstrap build.
Other cleaning up of the configuration and build process
has been performed as well.
install-info
now used to update the directory of
Info documentation to contain an entry for g77
(during installation).
OPEN
, INQUIRE
, READ
, and
WRITE
statements,
and about truncations of various sorts of constants.
libf2c
as of 1998-04-20.
This should fix a variety of problems, including
those involving some uses of the T
format
specifier, and perhaps some build (porting) problems
as well.
DO
loops that
have one or more references to the iteration variable,
or to aliases of it, in their control expressions.
For example, `DO 10 J=2,J' now is compiled correctly.
DNRM2
routine.
The x87 coprocessor stack was being
mismanaged in cases involving assigned GOTO
and ASSIGN
.
DTime
intrinsic so as not to truncate
results to integer values (on some systems).
Signal
intrinsic so it offers portable
support for 64-bit systems (such as Digital Alphas
running GNU/Linux).
NAMELIST
on 64-bit
machines such as Alphas.
g77
version of libf2c
so it no longer
produces a spurious `I/O recursion' diagnostic at run time
when an I/O operation (such as `READ *,I') is interrupted
in a manner that causes the program to be terminated
via the f_exit
routine (such as via C-c).
g77
crash triggered by CASE
statement with
an omitted lower or upper bound.
g77
crash compiling references to CPU_Time
intrinsic.
g77
crash
(or apparently infinite run-time)
when compiling certain complicated expressions
involving COMPLEX
arithmetic
(especially multiplication).
g77
crash on statements such as
`PRINT *, (REAL(Z(I)),I=1,2)', where
`Z' is DOUBLE COMPLEX
.
g++
crash.
INTEGER
expression.
g77
`-g' option so procedures that
use ENTRY
can be stepped through, line by line,
in gdb
.
gcc
back end for
Intel x86 architecture.
REAL
argument to intrinsics
Second
and CPU_Time
.
Int2
and Int8
.
tempnam
, if available, to open scratch files
(as in `OPEN(STATUS='SCRATCH')')
so that the TMPDIR
environment variable,
if present, is used.
gcc
keyword restrict
to
__restrict__
, to avoid rejecting valid, existing,
C programs.
Support for restrict
is now more like support
for complex
.
libf2c
so it is more likely that the printing of the
active format string is limited to the string,
with no trailing garbage being printed.
(Unlike f2c
, g77
did not append
a null byte to its compiled form of every
format string specified via a FORMAT
statement.
However, f2c
would exhibit the problem
anyway for a statement like `PRINT '(I)garbage', 1'
by printing `(I)garbage' as the format string.)
FORMAT
expressions so that
a null byte is appended to the last operand if it
is a constant.
This provides a cleaner run-time diagnostic as provided
by libf2c
for statements like `PRINT '(I1', 42'.
libf2c
.
libf2c
as of 1997-09-23.
This fixes a formatted-I/O bug that afflicted
64-bit systems with 32-bit integers
(such as Digital Alpha running GNU/Linux).
EGCS
1.0.2 versus EGCS
1.0.1:g77
crash triggered by CASE
statement with
an omitted lower or upper bound.
g77
crash on statements such as
`PRINT *, (REAL(Z(I)),I=1,2)', where
`Z' is DOUBLE COMPLEX
.
EGCS
1.0.1 versus EGCS
1.0:NAMELIST
on 64-bit
machines such as Alphas.
EGCS
1.0 versus g77
0.5.21:egcs
contains several regressions against
version 0.5.21 of g77
,
due to using the
"vanilla" gcc
back end instead of patching
it to fix a few bugs and improve performance in a
few cases.
Features that have been dropped from this version
of g77
due to their being implemented
via g77
-specific patches to the gcc
back end in previous releases include:
restrict
keyword.
g77
being fully integrated with
the egcs
variant of the gcc
back end.
DO
loops that
have one or more references to the iteration variable,
or to aliases of it, in their control expressions.
For example, `DO 10 J=2,J' now is compiled correctly.
DTime
intrinsic so as not to truncate
results to integer values (on some systems).
g77
built on gcc
version 2.8.1
on m68k-next-nextstep3 configurations
when using the `-O2' option,
is now compiled correctly.
It is believed that a C function known to miscompile
on that configuration
when using the `-O2 -funroll-loops' options
also is now compiled correctly.
egcs
versions of gcc
.
g77
now does all the driving,
just like gcc
.
Int2
and Int8
.
libf2c
so it is more likely that the printing of the
active format string is limited to the string,
with no trailing garbage being printed.
(Unlike f2c
, g77
did not append
a null byte to its compiled form of every
format string specified via a FORMAT
statement.
However, f2c
would exhibit the problem
anyway for a statement like `PRINT '(I)garbage', 1'
by printing `(I)garbage' as the format string.)
libf2c
as of 1997-09-23.
This fixes a formatted-I/O bug that afflicted
64-bit systems with 32-bit integers
(such as Digital Alpha running GNU/Linux).
gcc
(C, C++,
Fortran, and so on).
EQUIVALENCE
with a
DATA
statement that follows
the first executable statement (or is
treated as an executable-context statement
as a result of using the `-fpedantic'
option).
gcc
back end issues a warning about such a case.
This bug afflicted all code compiled by
version <IP_ADDRESS>.f.2 of gcc
(C, C++,
Fortran, and so on).
DATA
or similar to initialize a COMPLEX
variable or
array to zero.
AND
, OR
,
or XOR
intrinsics.
COMMON
or EQUIVALENCE
variable
as the target of an ASSIGN
or assigned-GOTO
statement.
FTell
or
FPutC
) as such and as the name of a procedure
or common block.
Such dual use of a name in a program is allowed by
the standard.
SAVE
or the `-fno-automatic' option
is in effect.
This avoids a compiler crash in some cases.
DOUBLE PRECISION
optimally on Pentium and
Pentium Pro architectures (586 and 686 in gcc
).
g77
.
g77
rejected a
second initialization specification immediately
following the first's closing `/' without
an intervening comma in a DATA
statement,
and the second specification was an implied-DO list.
gcc
back end so
certain complicated expressions involving COMPLEX
arithmetic (especially multiplication) don't appear to
take forever to compile.
gcc
back end.
gcc
fixes that seem useful in
g77
's version of gcc
.
(See `gcc/ChangeLog' for details--compare it
to that file in the vanilla gcc-<IP_ADDRESS>.tar.gz
distribution.)
libU77
routines that accept file and other names
to strip trailing blanks from them, for consistency
with other implementations.
Blanks may be forcibly appended to such names by
appending a single null character (`CHAR(0)')
to the significant trailing blanks.
CHMOD
intrinsic to work with file names
that have embedded blanks, commas, and so on.
SIGNAL
intrinsic so it accepts an
optional third Status
argument.
IDATE()
intrinsic subroutine (VXT form)
so it accepts arguments in the correct order.
Documentation fixed accordingly, and for
GMTIME()
and LTIME()
as well.
libU77
intrinsics to
support existing code more directly.
Such changes include allowing both subroutine and
function forms of many routines, changing MCLOCK()
and TIME()
to return INTEGER(KIND=1)
values,
introducing MCLOCK8()
and TIME8()
to
return INTEGER(KIND=2)
values,
and placing functions that are intended to perform
side effects in a new intrinsic group, badu77
.
libU77
so it is more portable.
g77
and gcc
now do a somewhat better
job detecting and diagnosing arrays that are too
large to handle before these cause diagnostics
during the assembler or linker phase, a compiler
crash, or generation of incorrect code.
restrict
keyword in gcc
front end.
gcc
version <IP_ADDRESS>
(modified by g77
into version <IP_ADDRESS>.f.1),
and remove
support for prior versions of gcc
.
gcc
back
end into g77
's, so GNAT users do not need
to apply GNAT's patches to build both GNAT and g77
from the same source tree.
make
rules and related code so that
generation of Info documentation doesn't require
compilation using gcc
.
Now, any ANSI C compiler should be adequate to
produce the g77
documentation (in particular,
the tables of intrinsics) from scratch.
INT2
and INT8
intrinsics.
CPU_TIME
intrinsic.
ALARM
intrinsic.
CTIME
intrinsic now accepts any INTEGER
argument, not just INTEGER(KIND=2)
.
gcc
`specs' file.
make
rule g77-cross
, used only for
cross-compiling.
libf2c
build procedure to re-archive library
if previous attempt to archive was interrupted.
gcc
to unroll loops only during the last
invocation (of as many as two invocations) of loop
optimization.
g77
driver to recognize `-fsyntax-only'
as an option that inhibits linking, just like `-c' or
`-S', and to recognize and properly handle the
`-nostdlib', `-M', `-MM', `-nodefaultlibs',
and `-Xlinker' options.
libf2c
as of 1997-08-16.
libf2c
to consistently and clearly diagnose
recursive I/O (at run time).
g77
driver now prints version information (such as produced
by g77 -v) to stderr
instead of stdout
.
ratfor
command, available
separately.
gcc
determines what kind of
system is being configured and what kinds are supported.
For example, GNU Linux/Alpha ELF systems now are directly
supported.
libf2c
that come
from netlib.bell-labs.com
; give any such files
that aren't quite accurate in g77
's version of
libf2c
the suffix `.netlib'.
INTEGER(KIND=0)
for future use.
INTEGER(KIND=1)
constants.
Specify `-ftypeless-boz' to cause such
constants to be interpreted as typeless.
(Version 0.5.19 introduced `-fno-typeless-boz' and
its inverse.)
See section Options Controlling Fortran Dialect,
for information on the `-ftypeless-boz' option.
libU77
intrinsics.
Users of such programs might need to compile them
differently (using, for example, `-ff90-intrinsics-disable')
or, better yet, insert appropriate EXTERNAL
statements specifying that these names are not intended
to be names of intrinsics.
ALWAYS_FLUSH
macro is no longer defined when
building libf2c
, which should result in improved
I/O performance, especially over NFS.
Note: If you have code that depends on the behavior
of libf2c
when built with ALWAYS_FLUSH
defined,
you will have to modify libf2c
accordingly before
building it from this and future versions of g77
.
See section Output Assumed To Flush, for more information.
libU77
has been
added to the version of libf2c
distributed with
and built as part of g77
.
g77
now knows about the routines in this library
as intrinsics.
g77
.
See section Other Dialects, for more information.
g77
front end and
the gcc
back end to better support Alpha (AXP)
machines.
This includes providing at least one bug-fix to the
gcc
back end for Alphas.
LOC()
intrinsic and %LOC()
construct now return
values of INTEGER(KIND=0)
type,
as defined by the GNU Fortran language.
This type is wide enough
(holds the same number of bits)
as the character-pointer type on the machine.
On most machines, this won't make a difference,
whereas, on Alphas and other systems with 64-bit pointers,
the INTEGER(KIND=0)
type is equivalent to INTEGER(KIND=2)
(often referred to as INTEGER*8
)
instead of the more common INTEGER(KIND=1)
(often referred to as INTEGER*4
).
COMPLEX
arithmetic in the g77
front
end, to avoid bugs in complex
support in the
gcc
back end.
New option `-fno-emulate-complex'
causes g77
to revert the 0.5.19 behavior.
g77
command driver so that `g77 -o foo.f'
no longer deletes `foo.f' before issuing other
diagnostics, and so the `-x' option is properly
handled.
gcc
back end.
This works as it does for gcc
itself--program units
may be inlined for invocations that follow them in the same
program unit, as long as the appropriate compile-time
options are specified.
COMMON
areas when any of
these are defined (assigned to) by Fortran code.
This can result in faster and/or smaller programs when
compiling with optimization enabled, though on some
systems this effect is observed only when `-fforce-addr'
also is specified.
New options `-falias-check', `-fargument-alias',
`-fargument-noalias',
and `-fno-argument-noalias-global' control the
way g77
handles potential aliasing.
See section Aliasing Assumed To Work, for detailed information on why the
new defaults might result in some programs no longer working the way they
did when compiled by previous versions of g77
.
CONJG()
and DCONJG()
intrinsics now
are compiled in-line.
g77
compiler has been changed back to
assume libf2c
has no aliasing problems in
its implementations of the COMPLEX
(and
DOUBLE COMPLEX
) intrinsics.
The libf2c
has been changed to have no such
problems.
As a result, 0.5.20 is expected to offer improved performance
over <IP_ADDRESS>, perhaps as good as 0.5.19 in most
or all cases, due to this change alone.
Note: This change requires version 0.5.20 of
libf2c
, at least, when linking code produced
by any versions of g77
other than <IP_ADDRESS>.
Use `g77 -v' to determine the version numbers
of the libF77
, libI77
, and libU77
components of the libf2c
library.
(If these version numbers are not printed--in
particular, if the linker complains about unresolved
references to names like `g77__fvers__'---that
strongly suggests your installation has an obsolete
version of libf2c
.)
g77
uses a separate memory location
to hold assigned statement labels.)
See section Ugly Assigned Labels, for more information.
FORMAT
and ENTRY
statements now are allowed to
precede IMPLICIT NONE
statements.
SELECT CASE
on
CHARACTER
type, instead of crashing, at compile time.
libf2c
archive
(`libf2c.a') so that members are added to it
only when truly necessary, so the user that installs
an already-built g77
doesn't need to have write
access to the build tree (whereas the user doing the
build might not have access to install new software
on the system).
gcc
version <IP_ADDRESS>
(modified by g77
into version <IP_ADDRESS>.f.2),
and remove
support for prior versions of gcc
.
libf2c
as of 1997-02-08, and
fix up some of the build procedures.
g77
,
fixing minor bugs (such as deletion of any file
named `f771' in the parent directory of gcc/
).
INTEGER(KIND=2)
(often referred to as INTEGER*8
)
available in
libf2c
and `f2c.h' so that f2c
users
may make full use of its features via the g77
version of `f2c.h' and the INTEGER(KIND=2)
support routines in the g77
version of libf2c
.
g77
driver and libf2c
so that `g77 -v'
yields version information on the library.
SNGL
and FLOAT
intrinsics now are
specific intrinsics, instead of synonyms for the
generic intrinsic REAL
.
REALPART
, IMAGPART
,
COMPLEX
,
LONG
, and SHORT
.
gnu
, has been added
to contain the new REALPART
, IMAGPART
,
and COMPLEX
intrinsics.
An old group, dcp
, has been removed.
DOUBLE COMPLEX
(or any
complex type other than COMPLEX
), unless
`-ff90' option specifies Fortran 90 interpretation
or new `-fugly-complex' option, in conjunction with
`-fnot-f90', specifies f2c
interpretation.
M
for the node
Diagnostics
in the top-level menu of
the Info documentation.)
Information on previous versions is archived
in `egcs/gcc/f/news.texi'
following the test of the DOC-OLDNEWS
macro.
Go to the first, previous, next, last section, table of contents.