## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)

## ----setup--------------------------------------------------------------------
library(BsplineQuantReg)

## ----simple example, fig.width=10, fig.height=7, out.width="100%"-------------


 n_points <- 50
  xtab = ((0:(n_points)) / (n_points))

  # simple pscillating data
  #ytab<- -3 * xtab +sin(3*2*xtab*3.14)+ 0.2 * rnorm(n_points+1)
  #ytab= <- 2* xtab + 0.5 * sin(6 * pi * xtab) + 0.1 * rnorm(n_points+1)
  ytab <- xtab * (1 - xtab) + 0.1 * rnorm(n_points + 1)
  kn <- 8

  n = 7

  monot1 = c(rep(1, n), rep(0, (12 - n)))
  monot2 = rep(1,12)
  knot <- ((0:(kn + 5)) / (kn + 5))
  
  res <- quantile_spline(
    xtab = xtab,
    ytab = ytab,
    knot,
    tau = 0.5,
    monot = 0,
    degree = 3,
    verbose = FALSE
  )
 res_part_croissant <- quantile_spline(
    xtab = xtab,
    ytab = ytab,
    knot = knot,
    tau = 0.5,
    degree = 3,
    monot = monot1,
    convcons = 0,
    verbose = FALSE
  )
 
 res_croissant <- quantile_spline(
    xtab = xtab,
    ytab = ytab,
    knot = knot,
    tau = 0.5,
    degree = 3,
    monot = 1,
    convcons = 0,
    verbose = FALSE
  )
 
 
par(mfrow = c(1, 3))
x_eval=(0:200)/200
  y_sans = spline_eval(res, x_eval)
  y_part_croiss = spline_eval(res_part_croissant, x_eval)
  y_croiss = spline_eval(res_croissant, x_eval)
  
    plot(
    xtab,
    ytab,
    pch = 16,
    cex = 0.5,
    col = "black",
    main = c("Without constraint")
    )
    lines(x_eval, y_sans, lwd = 2)  
    
  plot(
    xtab,
    ytab,
    pch = 16,
    cex = 0.5,
    col = "black",
    main = c("Mixed mootone :\n global increasing constraints
                "
    )
  )
  lines(x_eval, y_croiss, lwd = 2)  

    
    plot(
    xtab,
    ytab,
    pch = 16,
    cex = 0.5,
    col = "black",
    main = c("Mixed mootone :\n increasing constraints
                \n on the first inter-knots"
    )
  )
  lines(x_eval, y_part_croiss, lwd = 2)  



