Exemplo n.º 1
0
        public override NDArrayOrSymbol Forward(NDArrayOrSymbol x, NDArrayOrSymbol[] args)
        {
            if (x.IsNDArray)
            {
                return(CallCachedOp(args.ToList().ToNDArrays())[0]);
            }

            int[] in_fmt = null;
            var   inputs = new List <NDArrayOrSymbol>();

            inputs.Add(x);
            inputs.AddRange(args);

            (args, in_fmt) = Flatten(inputs.ToArray(), "input");
            if (in_fmt != _in_format.ToArray())
            {
                throw new Exception("Invalid input format");
            }

            var        ret         = _cached_graph.Value.Item2.Shallowcopy();
            SymbolDict composeArgs = new SymbolDict();

            for (int i = 0; i < _cached_graph.Value.Item1.Length; i++)
            {
                composeArgs.Add(_cached_graph.Value.Item1[0].Name, args[i]);
            }

            ret.Compose(composeArgs);

            return(Regroup(new List <NDArrayOrSymbol[]>()
            {
                new NDArrayOrSymbol[] { ret }
            }, _out_format.ToList()).Item1[0]);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Reads directory of ZipFiles.
        /// </summary>
        /// <param name="streams">FileStreams of zip container.</param>
        /// <param name="cd_diskId">Id of central directory in streams.</param>
        /// <param name="cd_offset">Offset of central directory in stream.</param>
        /// <param name="numberOfEntries">Number of entries in central directory.</param>
        private void ReadZipCentralDirectoryFileHeaders(FileStream[] streams, int cd_diskId, long cd_offset, int numberOfEntries)
        {
            var mainFileStream = streams[cd_diskId];

            mainFileStream.Seek(cd_offset, SeekOrigin.Begin);

            //Deserialize stream data according to number of Entries
            for (uint i = 0; i < numberOfEntries; i++)
            {
                var cd_fileHeader = new TZipCentralDirectoryFileHeader();
                cd_fileHeader.Load(mainFileStream);

                // is file or directory?
                var fileName = SanitizeFilename(cd_fileHeader.filename);
                if (fileName.Last() != '\\')
                {
                    m_Files.Add(fileName,
                                new SubFileHeader()
                    {
                        ZipFileIndex      = cd_fileHeader.diskStart,
                        CompressedSize    = (long)cd_fileHeader.sizeComp,
                        UncompressedSize  = (long)cd_fileHeader.sizeUncomp,
                        LocalHeaderOffset = (long)cd_fileHeader.hdrRelOffset,
                        LocalHeaderSize   = 0
                    });
                }
                else
                {
                    this.m_Directories.Add(fileName.Substring(0, cd_fileHeader.filename.Length - 1));
                }
            }
        }