 This operation is related to `squeeze()`, which removes dimensions of
 size 1.
 
-_inputArg
- input:: .T  dim:: .Tdim 
-_outputArg
-
-_outputArg
- output::T 
-
-*/
-
-
-
-// TODO - in the return parameters use an index Output(0) // output(1) etc
-// TODO - work out a way to skip extroneous , eg. param,param, )
-// TODO - Not all return types are output eg.
-// func ResourceSparseApplyRMSProp(scope *Scope, var_ tf.Output, ms tf.Output, mom tf.Output, lr tf.Output, rho tf.Output, momentum tf.Output, epsilon tf.Output, grad tf.Output, indices tf.Output, optional ...ResourceSparseApplyRMSPropAttr) (o *tf.Operation)
-
-
-
-
-
-
-func expandDims(scope:Scope,input: tf.Output, dim: tf.Output)  -> (output: tf.Output){
-    if scope.error() != nil {
-        return
-    }
-
-
+*/
+
+
+
+
+
+func expandDims(scope:Scope,input: tf.Output, dim: tf.OutputT :type, Tdim :type)  ->(output: tf.Output){
+    if scope.error() != nil {
+        return
+    }
     let opspec = tf.OpSpec(
         Type: "ExpandDims",
-        Input: [  input,  dim, )]
-        Attrs: attrs
-    )
-
-
-
-        let op = scope.AddOperation(opspec)
-        return (op.Output(1))
-
+        Input: [ input, dim]
+        Attrs: attrs
+    )
+    let op = scope.AddOperation(opspec)
+    return (op.Output(1 -1))
 }
 
 /*

*NOTE*: `Sub` supports broadcasting. More about broadcasting
[here](http://docs.scipy.org/doc/numpy/user/basics.broadcasting.html)

_inputArg
 x:: .T  y:: .T 
_outputArg

_outputArg
 z::T 

*/



// TODO - in the return parameters use an index Output(0) // output(1) etc
// TODO - work out a way to skip extroneous , eg. param,param, )
// TODO - Not all return types are output eg.
// func ResourceSparseApplyRMSProp(scope *Scope, var_ tf.Output, ms tf.Output, mom tf.Output, lr tf.Output, rho tf.Output, momentum tf.Output, epsilon tf.Output, grad tf.Output, indices tf.Output, optional ...ResourceSparseApplyRMSPropAttr) (o *tf.Operation)






func sub(scope:Scope,x: tf.Output, y: tf.Output)  -> (z: tf.Output){
    if scope.error() != nil {
        return
    }


    let opspec = tf.OpSpec(
        Type: "Sub",
        Input: [  x,  y, )]
        Attrs: attrs
    )



        let op = scope.AddOperation(opspec)
        return (op.Output(1))

}

/*

*NOTE*: `Div` supports broadcasting. More about broadcasting
[here](http://docs.scipy.org/doc/numpy/user/basics.broadcasting.html)

*/





func div(scope:Scope,x: tf.Output, y: tf.OutputT :type)  ->(z: tf.Output){
    if scope.error() != nil {
        return
    }
    let opspec = tf.OpSpec(
        Type: "Div",
        Input: [ x, y]
        Attrs: attrs
    )
    let op = scope.AddOperation(opspec)
    return (op.Output(1 -1))
}

/*
