#-------------------------------------------------------------
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
#
#-------------------------------------------------------------

# This builtin function  convert vector into csv string such as [1 0 0 1 1 0 1] = "1,4,5,7"
# Related to [SYSTEMDS-2662] dependency function for cleaning pipelines
#
# INPUT:
# ------------------------------------------------------------------------------------
# mask  Data vector (having 0 for excluded indexes)
# ------------------------------------------------------------------------------------
#
# OUTPUT:
# ----------------------------------------------------------------------------------------
# indexes  indexes
# ----------------------------------------------------------------------------------------

m_vectorToCsv = function(Matrix[Double] mask)
return (String indexes){

  vector  = mask * t(seq(1, ncol(mask)))
  vector = removeEmpty(target = vector, margin = "cols")
  if(nrow(vector) >  ncol(vector))
    vector = t(vector)
  s = ""
  if(ncol(vector) > 1) {
    for(i in 1:ncol(vector)-1)
      s = s+as.integer(as.scalar(vector[1,i]))+","
  }
  indexes = s+as.integer(as.scalar(vector[1,ncol(vector)]))
}
