Skip to content

Instantly share code, notes, and snippets.

View ericphanson's full-sized avatar

Eric Hanson ericphanson

View GitHub Profile
@ericphanson
ericphanson / warmstart_error.jl
Created October 27, 2019 21:32
Problem trying to warmstart
using SCS
using MathOptInterface # MathOptInterface v0.9.6
const MOI = MathOptInterface
const MOIU = MOI.Utilities
const MOIB = MOI.Bridges
function make_model(vector)
optimizer = SCS.Optimizer(verbose=false)
T = Float64
model = MOIB.full_bridge_optimizer(
@ericphanson
ericphanson / convert_tests.jl
Created September 9, 2019 17:23
Convex.jl ProblemDepot test conversion
function convert_test(file, prefix)
# handle start and end:
# delete @testset for... and final "end"
file_contents = read(file, String)
file_contents = replace(file_contents, r"\h*@testset.*for\ssolver.*\n" => "")
file_contents = lstrip(file_contents)
file_contents = file_contents[1:prevind(file_contents, first(findlast("end", file_contents)))]
file_contents = replace(file_contents, r"\n\h\h\h\h(.*)" => SubstitutionString("\n\\1"))
# handle special cases
@ericphanson
ericphanson / diff_eigmin.md
Created August 3, 2019 12:47
Various attempts to differentiate through `eigmin` in Julia

Attempts to differentiate eigmin

Julia 1.1, with Zygote master

Version information:

julia> Pkg.status()
    Status `~/Dropbox (Personal)/Research/Code/julia-projects/DiffEvals/ZygoteMaster/Project.toml`
  [ec485272] ArnoldiMethod v0.0.4
  [14197337] GenericLinearAlgebra v0.1.0
using Mosek
using SCS
import DSP: conv
using Convex
conv(x::AbstractVector, y::AbstractVector) = DSP.conv(x,y)
conv(x::Variable, y::AbstractVector) = Convex.conv(x,y)
conv(x::AbstractVector, y::Variable) = Convex.conv(x,y)
using Random
using SparseArrays
@ericphanson
ericphanson / simdiag.jl
Last active January 19, 2019 19:24
Simultaneous diagonalization for complex commuting normal matrices
# Adapted from
# https://uk.mathworks.com/matlabcentral/fileexchange/46794-simdiag-m
# which has the following license:
# Copyright (c) 2009, Christian B. Mendl
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice, this